Django:模板中存在Crispy表单验证错误

Django:模板中存在Crispy表单验证错误,django,django-forms,django-templates,django-crispy-forms,django-validation,Django,Django Forms,Django Templates,Django Crispy Forms,Django Validation,我正在使用django crispy forms来处理渲染良好的表单。 对于我的一个表单,我必须进行一些自定义调整,现在想知道如何正确地验证不属于特定字段但属于整个表单的错误 具体而言,我的表单包含开始和结束日期: #forms.py 类PlotForm(forms.Form): start_date=forms.DateField(initial=last_month,widget=forms.widgets.DateInput(attrs={'type':'date'})) end_date

我正在使用
django crispy forms
来处理渲染良好的表单。 对于我的一个表单,我必须进行一些自定义调整,现在想知道如何正确地验证不属于特定字段但属于整个表单的错误

具体而言,我的表单包含开始和结束日期:

#forms.py
类PlotForm(forms.Form):
start_date=forms.DateField(initial=last_month,widget=forms.widgets.DateInput(attrs={'type':'date'}))
end_date=forms.DateField(initial=datetime.date.today,widget=forms.widgets.DateInput(attrs={'type':'date'}))
def清洁(自清洁):
cleaned_data=super().clean()
开始日期=已清理的数据。获取('开始日期')
结束日期=已清理的数据。获取('结束日期')
如果开始日期>结束日期:
raise forms.ValidationError(“开始日期不能早于结束日期”)
返回开始日期
要检查结束日期是否早于开始日期,我使用
clean(self)

但是,永远不会显示错误


{%csrf_令牌%}
{{form.start_date}as_crispy_field}
{{form.end|u date{as_crispy_field}}
提交
我可以通过添加
{{form.errors}}
来解决这个问题,但这看起来非常难看。是否有任何简单的方法可以使用
crispy
很好地呈现表单相关的验证错误? 与字段相关的错误显示得很好。

您可以使用:


{%csrf_令牌%}
{{form | as_crispy_errors}}
{{form.start_date}as_crispy_field}
{{form.end|u date{as_crispy_field}}
提交
此模板筛选器将:

仅呈现表单错误的方式与
django crispy表单
相同

<form method="post">
    {% csrf_token %}
    {{ form|as_crispy_errors }}
    <div class="row">
        <div class="col-6">
            {{ form.start_date|as_crispy_field }}
        </div>
        <div class="col-6">
            {{ form.end_date|as_crispy_field }}
        </div>
    </div>
    <button type="submit" class="btn btn-primary">Submit</button>
</form>