ModelChoiceField всегда требуется?

У меня есть модель

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, не должен требоваться.

Какая-либо идея, как иметь дело с этим?

11
задан Henri 12 April 2010 в 15:43
поделиться

1 ответ

Если вы собираетесь переопределить форму, вам необходимо указать поле как необязательное в 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
26
ответ дан 3 December 2019 в 03:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: