[英]How to populate choice form from db in Django?
我不知道如何从db
填充choice form
。 我知道ModelChoiceForm
但问题似乎稍有不同。
我希望user
选择他在哪个部门工作。例如:“金融”,“电子”等,我可以简单地进行以下操作:
SECTOR_CHOICES = (('finance',_('Finance'),
'electronics',_('Electronics')...
))
但是问题是我希望网络admin
能够添加新选择,删除选择等。
我想到的是创建一个名为Sector
的简单Model
:
class Sector(models.Model):
name = models.CharField(max_length=40)
并且User
将具有新的属性sector = models.ModelChoice(Sector)
。
但是我很害怕当admin
更改或删除一个已经使用的扇区时会发生什么,而且,如果他删除它并且需要sector
属性该怎么办?
如何解决这个问题呢?
我只是将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]
# ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.