2

当用户点击注册表单上的“提交”按钮而没有填写表单上的任何字段时,如何引发异常?


如果发生这种情况,我只想显示单个错误(“请在提交前填写表单。”),而不显示通常会在用户忘记填写必填字段时显示的字段错误。

换句话说,如果用户在没有填写单个字段的情况下点击提交按钮,我希望它只显示一个错误:“请在提交前填写字段。”


我认为可能有两种方法可以实现这一目标:

  • 在表单的干净方法中的某处生成错误;并在模板中有一个 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>这些都不会明确表明发生了这种特殊错误。

必须有一个简单的方法来做到这一点!!!

4

1 回答 1

3

如果是这种情况,您可以在服务器端检查表单是否已更改而不是验证它。通过做这个:

def submit_form(request):
   if request.method == 'POST':
         form = Form(request.POST)
         if not form.has_changed():
             #Generate Error 
于 2012-11-29T06:12:50.230 回答