标签:用户名 验证 erro utils 合格 turn length obj login
form组件前端自动生成表单元素。
form组件可自动验证表单内容信息。
但是form表单的输出不包含submit
按钮,和表单的<form>
标签。 你必须自己提供。
<form action="/login/" method="post" novalidate> {% csrf_token %} {{ form_obj.as_p }} #{{ form.as_p }}将它们渲染在<p>
标签中 {{ form_obj.as_table }} #{{ form.as_table }}
以表格的形式将它们渲染在<tr>
标签中 {{ form_obj.as_ul }} #{{ form.as_ul }将它们渲染在<li>
标签中 <p><input type="submit" value="提交"></p> </form>
But:你必须自己提供<ul>
或<table>
元素。
方式一示例
#HTML <form action="/login/" method="post" novalidate> #novalidate不对输入进行验证的表单 {% csrf_token %} {{ form_obj.as_p }} <p><input type="submit" value="提交"></p> </form> #views from . import models from django import forms from django.forms import widgets from django.core.exceptions import NON_FIELD_ERRORS,ValidationError class LoginForm(forms.Form): user = forms.CharField(max_length=12,min_length=5, label="用户名", help_text="6~16个字符,区分大小写", error_messages={"required":"不能为空", "min_length":"最小长度为5",}) pwd = forms.CharField( help_text= "6~16个字符,区分大小写", error_messages={ "invalid":"格式错误" }, widget = widgets.PasswordInput(attrs={"class":"active"}) )
def login(request):
if request.method == "POST":
form_obj = LoginForm(request.POST)
if form_obj.is_valid():
# 数据全部合格
#取出合格数据
return HttpResponse("success")
else:
# 最少存在一个字段的错误
#取出错误信息
return render(request, "login.html", {"form_obj": form_obj}) #存放错误信息
form_obj = LoginForm()
return render(request,"login.html",{"form_obj":form_obj})
<form action="/login/" method="post" novalidate> {# novalidate不对输入进行验证的表单 {% csrf_token %} <div> <label for="user">用户名:</label> {{ form_obj.user }} <span>{{ form_obj.errors.user.0 }}</span> </div> <div> <label for="pwd">密码:</label> {{ form_obj.pwd }}<span>{{ form_obj.errors.pwd.0 }}</span> </div> <p><input type="submit" value="提交"><span>{{ ret.0 }}</span></p> </form>
<form action="/login/" method="post" novalidate> {% csrf_token %} {% for field in form_obj %} <div> <lable>{{ field.label }}</lable> {{ field }} </div> {% endfor %}
标签:用户名 验证 erro utils 合格 turn length obj login
原文地址:https://www.cnblogs.com/mainstream/p/11099701.html