表单验证有时失败,并显示值erorr

时间:2019-12-18 08:07:27

标签: django python-3.x

有时表单正在验证,但有时表单未通过验证并显示值错误

views.py

def hai(request):
    if request.method == 'POST':
        obj1 = hello(request.FILES, request.POST)
        if obj1.is_valid():
            return HttpResponse("success")

每次提交时都需要清理表格吗?

forms.py

class hello(forms.Form):
    uname = forms.CharField(max_length=100)
    img = forms.FileField()

模板

<html>
<head></head>
<body>
<form action= {% url 'hai' %} method="POST" enctype="multipart/form-data ">
  {% csrf_token %}
  <div class="d-flex">
    <div class="form-group mr-2">
      <label for="" class="label">Pick-up date</label>
      <input type="text" name="uname" class="form-control"
             placeholder="Date">
    </div><br>
    <div class="form-group ml-2">
      <label for="" class="label">Drop-off date</label>
      <input type="file" name="img" class="form-control"
             placeholder="Date">
    </div><br>
    <input type="submit" value="Book Now" class="btn btn-primary py-3 px4">
  </div>
</form>
</body>
</html>

这是错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

这里的问题是,无论表格是否有效,您都应该始终返回HttpResponse(或子类);所以基本上你应该有:

def hai(request):
    if request.method == 'POST':
        obj1 = hello(request.FILES, request.POST)
        if obj1.is_valid():
            return HttpResponse("success")
        else:
            return HttpResponse("error")

或者,您可以根据需要将模板中包含错误的表格发回。

相关问题