我的模型有一个ForeignKey,null=True/blank=True,但当我试图在Django Admin中更改对象时,我使用的是
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'parent_locale':
return ParentLocaleChoiceField(queryset=models.Locale.objects.all().order_by('display'))
return super().formfield_for_foreignkey(db_field, request, **kwargs)
以改变数据在那里的显示方式。但是现在这样做会在提交时抛出一个错误,说字段是必需的。使用formfield_for_foreignkey更改选项字段显示时,如何使该字段不为必需?
在ParentLocaleChoiceField 上添加required=False
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'parent_locale':
return ParentLocaleChoiceField(queryset=models.Locale.objects.all().order_by('display'), required=False)
return super().formfield_for_foreignkey(db_field, request, **kwargs)