У меня есть модель
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=True, Blank=True".
Когда я не использую специализированную форму, т.е. активизирую оператор
class ArticleAdmin(admin.ModelAdmin):
# form = ArticleAdminForm
.
.
затем все работает, кроме теперь я добираюсь до многих вариантов. В документации "ModelChoicesField" можно читать, фраза "Отмечают, что, если ModelChoiceField требуется..." подразумевая ModelChoiceField, не должен требоваться.
Какая-либо идея, как иметь дело с этим?
Если вы собираетесь переопределить форму, вам необходимо указать поле как необязательное в 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