我无法弄清楚如何从choice form
填充db
。我知道ModelChoiceForm
,但问题似乎略有不同。
我希望user
选择他所在的行业。例如:'财务','电子'等我会做的很简单:
SECTOR_CHOICES = (('finance',_('Finance'),
'electronics',_('Electronics')...
))
但问题是,我希望网络admin
能够添加新的选择,删除选择等。
我想到的是创建一个名为Model
的简单Sector
:
class Sector(models.Model):
name = models.CharField(max_length=40)
和User
会有新属性sector = models.ModelChoice(Sector)
。
但我很害怕当admin
更改或删除已经使用过的扇区时会发生什么,等等,如果他删除它并且需要sector
属性怎么办?
如何解决这个问题?
答案 0 :(得分:1)
我只是将delete_model覆盖为自定义操作,并检查所选的扇区对象是否正在使用中。
def delete_model(modeladmin, request, queryset):
for obj in queryset:
if UserModel.objects.filter(sector=obj).exists():
# do not delete, just add some message warning the admin about it
else:
obj.delete()
class UserModelAdmin(admin.ModelAdmin):
actions = [delete_model]
# ...