django - 表单没有错误,但form.is_valid()不验证

ava*_*tar 22 django django-templates django-forms django-views

我有一个表单,由于某种原因,它不会抛出任何错误(如果用户在文本字段中添加数据)但form.is_valid()不验证.有任何想法吗?

forms.py:

class MyForm(forms.Form):
    title = forms.CharField(widget=forms.TextInput(attrs={'class':'titleField')) 
Run Code Online (Sandbox Code Playgroud)

mytemplate.html

  <form action="" method="post" name="form">{% csrf_token %}
  {{ form.title.errors }}
  {{ form.title }}
  <input type="submit" name='submit_button' value="Post" />
  </form>
Run Code Online (Sandbox Code Playgroud)

views.py:

      if 'submit_button' in request.POST:
            form = MyForm(request.POST)
            if form.is_valid():
               cd = form.cleaned_data 
               title = cd['title']
               g = MyData(title='title')   
               g.save()

       else:
            form = MyForm() 
Run Code Online (Sandbox Code Playgroud)

Thi*_*Lam 42

从您的模板中添加以下内容:

{{ form.errors }}
{{ form.non_field_errors }}
Run Code Online (Sandbox Code Playgroud)

你看到上面的任何错误吗?

  • {{form.errors}} {{form.non_field_errors}}没有为我显示任何错误:(但仍然没有更新.表单是绑定的,实例也传递给表单 (7认同)
  • 如果上述两个不起作用,那么您没有将GET或POST参数传递给表单,因此它没有获取任何数据而没有验证.确保您正在呼叫的表单是从请求中传递的GET或POST. (4认同)
  • 当我子类化 AuthenticationForm 时,我试图覆盖一些小部件属性,但在构造函数中,在执行 `super().__init__(self, *args, **kwargs)` 时,我忘记传递 **self** 和因此我看不到任何错误。修复此问题后,我能够看到错误。_所以请检查您的 forms.py 文件是否有任何愚蠢的错误_ (2认同)

giv*_*rld 8

您也可以在后端打印(或记录)错误,同样使用:

比如,打印错误:

print(form.errors)
Run Code Online (Sandbox Code Playgroud)