繁体   English   中英

如何从Django中的数据库填充选择表单?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM