如何在 django 中验证纯 HTML 表单字段

我是一名 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>

看法:


def createUser(request):

    form = RegisterUser(request.POST)


    if form.is_valid():

        user = User(user_name = form.cleaned_data['user_name'],

        password = form.cleaned_data['password'],

        email = form.cleaned_data['email'],

        phone = form.cleaned_data['phone'],)


        user.save()

        return redirect("index")

    else:

        return messages.error(request, "Invalid data")

形式:


class RegisterUser(forms.Form):

    user_name = forms.CharField(max_length=50)

    password = forms.CharField(max_length = 50)

    email = forms.CharField(max_length = 50)

    phone = forms.CharField(max_length = 50)


ITMISS
浏览 72回答 1
1回答

ibeautiful

我认为您正在尝试使用默认用户模型创建用户。如果您想在验证失败后渲染带有错误的表单,我认为有必要将表单作为上下文传递给渲染方法,以便模板可以使用错误数据重新渲染。然后您可以访问form.errors所有字段错误、form.non_field_errors所有非字段错误或form.fieldname.errors特定字段错误的错误,例如:form.user_name.errors。def create_user(request):&nbsp; &nbsp; form = RegisterUser(request.POST)&nbsp; &nbsp; if form.is_valid():&nbsp; &nbsp; &nbsp; &nbsp; # user = User(user_name = form.cleaned_data['user_name'],&nbsp; &nbsp; &nbsp; &nbsp; user_name = form.cleaned_data['user_name'&nbsp; &nbsp; &nbsp; &nbsp; password = form.cleaned_data['password'],&nbsp; &nbsp; &nbsp; &nbsp; email = form.cleaned_data['email'],&nbsp; &nbsp; &nbsp; &nbsp; phone = form.cleaned_data['phone'],)&nbsp; &nbsp; &nbsp; &nbsp; user = User.create(username, email)&nbsp; &nbsp; &nbsp; &nbsp; user.set_password(password)&nbsp; &nbsp; &nbsp; &nbsp; user.save()&nbsp; &nbsp; &nbsp; &nbsp; return redirect("index")&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; messages.error(request, "Invalid data")&nbsp; &nbsp; &nbsp; &nbsp; return render(request, 'your_form.html', {'form': form})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python