博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django Form 效验
阅读量:5095 次
发布时间:2019-06-13

本文共 4204 字,大约阅读时间需要 14 分钟。

Django 登入效验

.py

from django import formsfrom student import modelsfrom django.core.exceptions import ValidationErrorfrom django.core.validators import RegexValidatorclass RegForm(forms.Form):    username = forms.CharField(        max_length=16,        label="用户名",        widget=forms.widgets.TextInput(attrs={"class": "form-control"},),        error_messages={            "max_length": "用户名最长16位",            "required": "用户名不能为空",        }    )    password = forms.CharField(        min_length=6,        max_length=10,        label="密码",        widget=forms.widgets.PasswordInput(attrs={"class": "form-control"},),        error_messages={            "max_length": "最小长度为6",            "required": "密码不能为空",        }    )    re_password = forms.CharField(        min_length=6,        max_length=10,        label="确认密码",        widget=forms.widgets.PasswordInput(attrs={"class": "form-control"}, render_value=True),        error_messages={            "min_length": "密码最少6位",            "required": "密码不能为空",        }    )    gender = forms.ChoiceField(        choices=(('男', "男"), ('女', "女")),        label="性别",        initial=1,        widget=forms.widgets.RadioSelect    )    age = forms.CharField(        max_length=10,        label="年龄",        widget=forms.widgets.TextInput(attrs={"class": "form-control"}),    )    addr = forms.CharField(        max_length=32,        label="地址",        widget=forms.widgets.TextInput(attrs={"class": "form-control"}),        error_messages={            "required": "地址不能为空",        }    )    phone = forms.CharField(        label="手机",        validators=[            RegexValidator(r'^1[3-9][0-9]{9}$', '手机格式不正确')        ],        widget=forms.widgets.TextInput(attrs={"class": "form-control"}),        error_messages={            "required": "手机不能为空"        }    )    # 重写username字段的局部钩子    def clean_username(self):        username = self.cleaned_data.get("username")        is_exist = models.Student.objects.filter(username=username)        if is_exist:            # 表示用户名已注册            self.add_error("username", ValidationError("用户名已存在!"))        else:            return username        # 重写全局的钩子函数, 对确认密码做效验    def clean(self):        password = self.cleaned_data.get("password")        re_password = self.cleaned_data.get("re_password")        if re_password and re_password != password:            self.add_error("re_password", ValidationError("两次密码不一致"))        else:            return self.cleaned_data
View Code

.html

    
注册
{# autocomplete="off"自动补全 #} {% csrf_token %}
{ { form_obj.username }}
{ { form_obj.username.errors.0 }}
{ { form_obj.password }}
{ { form_obj.password.errors.0 }}
{ { form_obj.re_password }}
{ { form_obj.re_password.errors.0 }}
{ { form_obj.gender }}
{ { form_obj.gender.errors.0 }}
{ { form_obj.age }}
{ { form_obj.age.errors.0 }}
{ { form_obj.addr }}
{ { form_obj.addr.errors.0 }}
{ { form_obj.phone }}
{ { form_obj.phone.errors.0 }}
{##}
View Code

 

转载于:https://www.cnblogs.com/taozhengquan/p/9825889.html

你可能感兴趣的文章
Elasticsearch-6.7.0系列(七)SpringCloud连接ES集群,使用ES用户名密码
查看>>
进行尽量少的乘法计算求出Sum = 1 + x + x^2 + x^3 + ..... + x^n
查看>>
大一--纯C实现--职工信息管理--课程设计
查看>>
android:SSL
查看>>
E20171014-hm
查看>>
201521123037 《Java程序设计》第4周学习总结
查看>>
sql表和字段的别名
查看>>
vue中子组件传值给父组件
查看>>
macbook Air安装OS系统,提示“请插入电源适配器”,实际已插电源却检测不到
查看>>
[杂谈]两年来的工作收获
查看>>
java io nio aio区别、联系
查看>>
hdu 2106 decimal system (数学)
查看>>
IOS 入门介绍1-----IOS简单介绍
查看>>
vue diff 算法学习
查看>>
[原]图书馆值班小思
查看>>
16章个人总结
查看>>
Force Cast Of Java
查看>>
第三次作业
查看>>
Beta冲刺第三天
查看>>
人人编程
查看>>