Python 如何在django中验证普通HTML表单字段

Python 如何在django中验证普通HTML表单字段,python,django,django-forms,django-templates,django-validation,Python,Django,Django Forms,Django Templates,Django Validation,我是一名laravel开发人员,我是django的新手。在我开始探索表单之前,django的一切都很顺利。我想使用普通HTML表单,并使用django表单验证对其进行验证,但我没有得到这样做的适当参考或教程 我想要一些示例或帮助来验证django中的纯HTML表单字段 以下是我的代码片段: 模板: <form action="{% url 'user.create' %}" method="post"> {% csrf_token %}

我是一名laravel开发人员,我是django的新手。在我开始探索表单之前,django的一切都很顺利。我想使用普通HTML表单,并使用django表单验证对其进行验证,但我没有得到这样做的适当参考或教程

我想要一些示例或帮助来验证django中的纯HTML表单字段

以下是我的代码片段:

模板:

<form action="{% url 'user.create' %}" method="post">
   {% csrf_token %}
   <div class="row">
      <div class="input-field col s6">
           <input id="user_name" name="user_name" type="text">
            <label for="user_name">Username</label>
       </div>
       <div class="input-field col s6">
           <input id="password" name="password" type="password">
           <label for="password">Password</label>
        </div>
     </div>
     <div class="row">
       <div class="input-field col s6">
         <input id="email" name="email" type="email">
         <label for="email">Email</label>
        </div>
        <div class="input-field col s6">
           <input id="phone" name="phone" type="text">
           <label for="phone">Phone</label>
        </div>
      </div>

 <input class="waves-effect waves-light btn blue darken-2" type="submit" value="Register" />
</form>
表格:

类注册器(forms.Form):
user\u name=forms.CharField(最大长度=50)
密码=forms.CharField(最大长度=50)
email=forms.CharField(最大长度=50)
phone=forms.CharField(最大长度=50)

我认为您正在尝试使用默认用户模型创建用户。若您想在验证失败后呈现带有错误的表单,我认为有必要将表单作为上下文传递给呈现方法,以便模板可以使用错误数据重新呈现。然后,对于所有字段错误,您可以访问
form.errors
;对于所有非字段错误,您可以访问
form.non\u field\u errors
;对于特定字段错误,您可以访问
form.fieldname.errors

def create_user(request):
    form = RegisterUser(request.POST)

    if form.is_valid():
        # user = User(user_name = form.cleaned_data['user_name'],
        user_name = form.cleaned_data['user_name'
        password = form.cleaned_data['password'],
        email = form.cleaned_data['email'],
        phone = form.cleaned_data['phone'],)
        user = User.create(username, email)
        user.set_password(password)
        user.save()
        return redirect("index")
    else:
        messages.error(request, "Invalid data")
        return render(request, 'your_form.html', {'form': form})

如果验证失败,您希望发生什么?请发布您的模板并查看,表单也很好。@如果验证失败,我希望重定向到带有错误消息的同一页面。@Its米兰:是的,我现在已经添加了代码段。