我有一个模特
class Article(models.Model):
.
.
language = models.ForeignKey(Language, help_text="Select the article's language")
parent_article = models.ForeignKey('self', null=True, blank=True)
如果文章是原创文章,那么'parent_article = None'。如果文章是翻译,那么'parent_article'<>无。
所以我创建了:
class ArticleAdminForm(forms.ModelForm):
.
.
parent_article = forms.ModelChoiceField(queryset=AyurvedicArticle.objects.filter(parent_article=None), help_text="Select the parent article (if any)")
class Meta:
Article
class ArticleAdmin(admin.ModelAdmin):
form = ArticleAdminForm
.
.
现在,当我应用所有这些似乎工作正常,但是当我没有选择“父文章”时,我在管理员中收到一条错误消息,声明“此字段是必需的”,即使模型说:“null =是的,空白=真“。
当我不使用自定义表格时,即发出声明
class ArticleAdmin(admin.ModelAdmin):
# form = ArticleAdminForm
.
.
然后一切正常,除了现在我有很多选择。在“ModelChoicesField”的文档中,您可以阅读短语“请注意,如果需要ModelChoiceField ......”,这意味着不需要ModelChoiceField。
知道怎么处理这个吗?
答案 0 :(得分:24)
如果您要覆盖表单,则需要将字段设置为ArticleAdminForm
中不需要的字段。
class ArticleAdminForm(forms.ModelForm):
.
.
parent_article = forms.ModelChoiceField(
queryset=AyurvedicArticle.objects.filter(parent_article=None),
required=False,
help_text="Select the parent article (if any)"
)
class Meta:
Article