为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ITMISS 2023-07-11 15:59:12
我是一名 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)
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

我认为您正在尝试使用默认用户模型创建用户。如果您想在验证失败后渲染带有错误的表单,我认为有必要将表单作为上下文传递给渲染方法,以便模板可以使用错误数据重新渲染。然后您可以访问form.errors所有字段错误、form.non_field_errors所有非字段错误或form.fieldname.errors特定字段错误的错误,例如:form.user_name.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})


查看完整回答
反对 回复 2023-07-11
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信