Django - form is not valid ?

问题:

在前端进行Form表单进行POST请求的时候, 需要在Django后端建立对应的Form类。 然后按照如下顺序操作,便可以获取到Form表单中对应控件的值。

form = bookQueryForm(request.POST)
if form.is_valid():
  author =  form.cleaned_data["author"]

但是事情往往没有我们想象的那么顺利, 比如今天笔者今天在进行一次POST请求的时候, form.is_valid()方法一直返回错误。

form is not vaild

笔者在前一段时间已经遇到了这个问题, 本文对当时场景已经有详细的记录。 本以为经过上次的折腾,再也不会踩进相同的坑里。结果还是打脸,真可谓是 not too young, also too simple

案发现场

form定义如下:

class bookQueryForm(forms.Form):
    author  = forms.CharField()

Form表单定义如下:


  

XHR request请求相关代码如下:

var form = document.getElementById('id_querybookForm');
  var formData =  new FormData();             
  formData.append('author',document.getElementById("id_author").value);

在这个场景下面发现,如果在提交之前在 id_author输入控件中输入了信息, 则不会出现 form is not valid的信息; 如果不输入信息, 则就会出现错误信息。

解决办法

在定义的时候Form类的时候, 对不是强制需要用户输入的控件,需要显式说明
required=False

    author  = forms.CharField(required=False)

你可能感兴趣的:(Django - form is not valid ?)