Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django is_valid()始终返回false错误_Django_Django Models_Django Forms_Django Templates_Django Views - Fatal编程技术网

Django is_valid()始终返回false错误

Django is_valid()始终返回false错误,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,我是Django的初学者。当我在html页面中提交时,views.py中的is_valid函数始终返回false。html是我的模板。很明显,我填写的内容是正确的,但它仍然返回false。 欢迎任何帮助 这是我的models.py文件 from django.db import models # Create your models here. class User(models.Model): first_name = models.CharField(max_length=

我是Django的初学者。当我在html页面中提交时,views.py中的is_valid函数始终返回false。html是我的模板。很明显,我填写的内容是正确的,但它仍然返回false。 欢迎任何帮助

这是我的models.py文件

    from django.db import models

# Create your models here.
class User(models.Model):
    first_name = models.CharField(max_length=264, )
    last_name = models.CharField(max_length=264, )
    email = models.EmailField(max_length=255,)
    def __str__(self):
        return self.first_name + self.last_name
这是我的forms.py文件

    from django import forms
from first_app.models import User
from django.forms import ModelForm


class User_form(ModelForm):

    class Meta:
        model = User
        fields = ['first_name','last_name','email']
这是my views.py文件

 from django.shortcuts import render
from django.http import HttpResponse
from . import forms
from first_app.models import User
# Create your views here.

def index(request):
    return render(request,'index.html')



def user_form_view(request):

    form = forms.User_form()

    if request.method == 'POST':

        if form.is_valid():
            form = forms.User_form(request.post)
            form.save()
            return index(request)

        else:
            print(form)
            return user_show(request)

    return render(request,'first_app/users.html',{'form':form})
这是我的users.html

  <!DOCTYPE html>
{% load static %}

<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Users</title>
  </head>
  <body>

    <h1>Hello! please type in your information</h1>
    <div class="container">

      <form class="" method="POST">
        {{form.as_p}}
        {% csrf_token %}
        <input type="submit" class="btn btn-primary" value="submit">
      </form>
    </div>
  </body>
</html>

{%load static%}
使用者
你好请输入您的信息
{{form.as_p}}
{%csrf_令牌%}

为了使表单有效,它需要“有界”(您可以使用进行检查)。Bounded表示您向它传递了数据,例如使用
request.POST
(或
request.GET
,或其他类似字典的容器):

def用户表单视图(请求):
如果request.method==“POST”:
表单=表单.用户\表单(请求.发布)
如果form.is_有效():
form.save()
返回索引(请求)
其他:
打印(表格)
返回用户显示(请求)
其他:
form=forms.User\u form()
返回呈现(请求,'first_app/users.html',{'form':form})
注意:类的名称通常用PerlCase编写,而不是snake\u大小写,因此您可能应该将
用户表单
重命名为
用户表单


一个没有数据的表单(所以没有
请求.POST
)总是无效的,因为它没有“绑定”。啊,我终于得到了它!谢谢
def user_form_view(request):
    if request.method == 'POST':
        form = forms.User_form(request.POST)
        if form.is_valid():
            form.save()
            return index(request)
        else:
            print(form)
            return user_show(request)
    else:
        form = forms.User_form()
    return render(request,'first_app/users.html',{'form':form})