当用户点击注册表单上的“提交”按钮时,如果没有在表单上填写任何字段,我该如何引发异常? < / p>
如果发生这种情况,我只想显示单个错误(“请在提交前填写表单。”),而不显示通常会显示的字段错误用户忘记填写必填字段。
换句话说,如果用户点击提交按钮而没有填写单个字段,我希望它只显示一个错误:“请在提交前填写该字段。”
我认为可能有两种方法可以达到这个目的:
在表单的clean方法中的某处生成错误;并且在模板中有一个if语句,如果产生此错误则忽略所有其他错误。
一旦用户点击提交按钮,就会在实际模板中生成错误(我不确定这是否可行)。
第一个选项的问题是我需要使用if语句,如下所示。但我不知道如何挑出那个特定的错误。
{% if form.special_error %}
...display the special error
...disregard any other field or non_field errors
{% endif %}
我只知道如何在if语句中使用form.errors
,form.non_field_errors
和form.<specific_field>
。这些都不会明确表明发生了这种特殊错误。
必须有一个简单的方法来做到这一点!!!
答案 0 :(得分:3)
如果是这种情况,您可以在服务器端检查表单是否已更改而不是验证它。通过这样做:
def submit_form(request):
if request.method == 'POST':
form = Form(request.POST)
if not form.has_changed():
#Generate Error