1

如果 Django 管理中的字段为空,我想显示一条错误消息。目前,我知道如何在页面的早期引入 ValidationError,但我需要在空白字段的正上方获取消息。如何才能做到这一点?

还没有找到答案。

class Article(models.Model):
    ...
    title_ru = models.CharField(max_length=255, blank=True)
    ...

class ArticleAdmin(admin.ModelAdmin):

    class form(forms.ModelForm):

        class Meta:
        model = models.Article

    def clean(self):
        cleaned_data = super(forms.ModelForm, self).clean()
        title_ru = cleaned_data['title_ru']
        if not title_ru:
            raise forms.ValidationError("Title ru")

        return self.cleaned_data

forms.ValidationError("Title ru")在页面顶部显示一条消息,但我需要在该字段上显示此消息

如何通过 Title_ru 字段获取消息?

4

2 回答 2

2

由于您ValidationErrorclean方法中提出 a ,因此您会在页面顶部看到错误消息。clean_title_ru改为提出验证错误

def clean_title_ru(self):
    title_ru = self.cleaned_data['title_ru']
    if not title_ru:
        raise forms.ValidationError("Title ru")

    return self.cleaned_data['title_ru']
于 2013-08-20T14:10:49.607 回答
0

最好的方法是检查 clean_title_ru 中的值,但是如果你想检查多个值,你可以这样做:

def clean(self):
    cleaned_data = super(forms.ModelForm, self).clean()
    title_ru = cleaned_data['title_ru']
    if not title_ru:
        msg = u"error in Title ru"
        self._errors["title_ru"] = self.error_class([msg])

        # These fields are no longer valid. Remove them from the cleaned data.
        del cleaned_data["title_ru"]

    return self.cleaned_data
于 2013-08-20T14:28:14.203 回答