显示引发ValidationError的每个字段的验证错误

时间:2016-03-20 03:52:45

标签: django validationerror

仅查找旧的答案和示例,我不了解在视图中显示错误。

我在clean_message中创建了一个forms.py方法,用于检查self.message是否有内容,如果没有,则会引发ValidationError

"""
Comment
"""
class CommentForm(forms.Form):
    """
    Comment field
    """
    comment = forms.CharField(
        widget = forms.Textarea(
            attrs = {
                'class': 'form-control',
                'rows': 2 
            }
        )
    )

    def clean_comment(self):
        if self.cleaned_data['comment'] is None:
            raise form.ValidationError({'comment': ['You must enter your comment'])

这是视图文件。我需要显示错误,如上所示构建错误?

<form action="comment" method="POST">
    {% csrf_token %}
    <div class="form-group">
        {{ form.comment.errors }}
        {{ form.comment }}
    </div>
    <div class="form-group">
        <input type="submit" value="Say it" class="btn btn-success"> 
    </div>
</form>

我尝试使用{{form.errors}},迭代它,使用{{form.non_field_errors}}等,但都没有效果。我猜不知道我正在重新加载表单,因此不会显示消息。

1 个答案:

答案 0 :(得分:0)

要在表单级别显示错误,您只需使用:def clean_message(self): if not self.message: raise ValidationError({'message': ['You must enter your comment']) 即可。但似乎你想要字段级错误消息。为此,您需要修改clean方法:

field.errors

这样,错误将在适当的parseString上设置。