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