0

只找到了关于在视图中显示错误的旧答案和示例。

我在我的 中创建了一个clean_message方法forms.py,它检查是否self.message有东西,并在没有的情况下引发 a 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 }} 等,但没有一个有效。我想我正在重新加载表单,因此不会显示消息。

4

1 回答 1

0

要在表单级别显示错误,您可以简单地使用{{ form.errors }}:但似乎您想要字段级错误消息。为此,您需要修改 clean 方法,如下所示:

def clean_message(self):
    if not self.message:
        raise ValidationError({'message': ['You must enter your comment'])

这样,错误将设置在适当的field.errors.

于 2016-03-20T04:08:20.597 回答