本文实例为大家分享了Django实现表单验证的具体代码,供大家参考,具体内容如下
模型。py
类用户(models.Model): 昵称=模型。null=False CharField (max_length=16日,空白=False,独特的=True) 电子邮件=模型。EmailField (max_length=32岁零=False,空白=False,独特的=True) 密码=模型。CharField (max_length=64,零=False,空白=False) 头=models.ImageField(默认=" decault.png”) 年龄=models.CharField (max_length=3,空白=True, null=True) 性别=模型。CharField (max_length=2,空白=True, null=True) isactivate=models.BooleanField(默认=False) def保存(自我): 如果不是self.password.startswith (“pbkdf2_”): 自我。密码=make_password (self.password) super () .save ()
的形式。py
从django导入形式 从django.core。异常进口ValidationError 从用户。模型导入用户 #定义验证器 def nickname_validate(昵称): u=Users.objects.filter(昵称=昵称) 如果len (u): 打印(len (u)) 提高ValidationError(“用户名已存在的) #定义表单 类RegisterForm (forms.Form): 昵称=forms.CharField(验证器=[nickname_validate], 标签='用户名”, max_length=16, min_length=4, 要求=True, 小部件=forms.TextInput (), ) 密码=forms.CharField(标签='密码”, max_length=64, min_length=6, 要求=True, 小部件=forms.PasswordInput ()) 电子邮件=forms.EmailField(标签='邮箱”, max_length=32, 需要=True) 年龄=forms.CharField(标签='年龄”, max_length=3, 需要=False) 性别=forms.ChoiceField(标签='性别”, 选择=((0,“男”),(1,'女')), 需要=False)
view.py
从用户。形式进口RegisterForm 从用户。模型导入用户 def寄存器(请求): 如果请求。方法==癙OST”: 形式=RegisterForm (request.POST) 如果form.is_valid (): u=用户() u。昵称=form.cleaned_data(“昵称”) u。电子邮件=form.cleaned_data(“电子邮件”) u。密码=form.cleaned_data['密码'] u。年龄=form.cleaned_data(“年龄”) u。性别=form.cleaned_data(“性”) u.save () 返回渲染(请求,“user_info.html”) 其他: 返回渲染(请求,”注册。html的,上下文={“形式”:形式,“错误”:form.errors}) 其他: 形式=RegisterForm () 返回渲染(请求、“register.html”上下文={}“形式”:形式)
register.html
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title>注册& lt;/title> & lt;/head> & lt; body> & lt;形式类="形式" action=" {% url的用户:注册%}”方法=皃ost”比; {% csrf_token %} & lt; table> {{形式。as_p}} & lt;/table> & lt;按钮类型=疤峤弧眂lass=癰tn btn-primary btn-block”祝辞注册 & lt;/button> & lt;输入类型=耙亍钡拿?跋乱桓觥眝alue=" https://www.yisu.com/zixun/{{一}}"/比; & lt;/form> & lt;/body> & lt;/html> >之前以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Django实现表单验证