关于django form验证是否用户名已存在

想通过django的Form模块进行数据库中是否已存在用户名的验证,首先我先调用了数据库用户名字段所有的值,发现是个queryset对象。

随后经过查询后发现queryset查询集对象可以调用list工厂方法后,生成一个类似于[(‘user_name_1‘,‘username_2‘)]的对象,随即把列表中的元组对象拿出来进行遍历,完成验证,form代码如下:

class Registerform(forms.Form):
    user_name = forms.CharField(label=‘你的姓名‘, max_length=10,error_messages={

    })
    user_psd = forms.CharField(label=‘你的密码‘,widget=forms.PasswordInput())
    user_psd2 = forms.CharField(label=‘请再次输入你的密码‘,widget=forms.PasswordInput())
    email = forms.EmailField(label=‘你的邮件地址‘,widget=forms.TextInput)
    def clean(self):
        cleaned_data = self.cleaned_data
        pwd = self.cleaned_data[‘user_psd‘]
        pwd2 =self.cleaned_data[‘user_psd2‘]
        user_form = self.cleaned_data[‘user_name‘]
        user_model = list(models.User_info.objects.all().values_list(‘user_name‘))
        for i in user_model:#此步i为类似(username_1,username_2,)的元组对象
            print(user_form)
            if user_form in i:
                raise forms.ValidationError(‘用户名已存在,请重新尝试登录‘)
        if pwd!=pwd2:
            raise forms.ValidationError(‘两次输入的密码不匹配‘)
        return cleaned_data

原文地址:https://www.cnblogs.com/zxmbky/p/9707582.html

时间: 2024-07-28 21:57:37

关于django form验证是否用户名已存在的相关文章

Django --form验证

formOoject.is_valid()调用如下方法: return self.is_bound and not self.error 其中is_bound可以认为是否是有传入(绑定) 重点是self.error进入这个方法' 1 @property 2 def errors(self): 3 "Returns an ErrorDict for the data provided for the form" 4 if self._errors is None: 5 self.full

Django form验证二

63-05 必须先判断is_valid(),才能获取值.clean() 创建form对象时,从数据库取值初始化: username = fields.CharField() user_type = fields.IntegerField( widget=widgets.Select(choices=[]) ) def __init__(self,*args, **kwargs): # 执行父类的构造方法 super(InitialForm,self).__init__(*args, **kwar

django 使用form验证用户名和密码

form验证可以减少查询数据库,所以代码先预先验证,有问题可以返回给前端显示 1.在users文件夹下新建forms.py文件,用来验证用户名和密码是否为空,密码长度是否大于6 # -*- coding: utf-8 -*- # 作者:神秘藏宝室 # 日期:2018/12/30 21:56 from django import forms class LoginForm(forms.Form): username = forms.CharField(required=True) password

Django中Form验证

Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 一,Form验证 第一种操作:主要是这三个函数 is_valid() cleaned_data errors from xiaoqing import models def form(request): if request.method == "GET": return render(request,'form.html') eli

[oldboy-django][2深入django]form表单clean_xx, clean完成数据验证+ form错误信息

form后台生成form里面的Input标签,以及设置Input的属性 # 需求 后台生成form里面的input标签,并设置input标签的属性, class RegisterForm(Form): email = fields.EmailField() password = fields.CharField() password2 = fields.CharField() code = fields.CharField() avatar = fields.FileField(widget=w

Django之Form验证(***)

Django之Form验证 ------- END ------- 原文地址:https://www.cnblogs.com/george92/p/11441796.html

django form组件扩展

1简单扩展 利用form组件自带的正则扩展: a.方式一 from django.forms import Form from django.forms import widgets from django.forms import fields from django.core.validators import RegexValidator class MyForm(Form): user = fields.CharField( error_messages={'invalid': '...

西游之路——python全栈——通用模块(pager、check_code、form验证)

1.验证码 1 import random 2 from PIL import Image, ImageDraw, ImageFont, ImageFilter 3 4 _letter_cases = "abcdefghjkmnpqrstuvwxy" # 小写字母,去除可能干扰的i,l,o,z 5 _upper_cases = _letter_cases.upper() # 大写字母 6 _numbers = ''.join(map(str, range(3, 10))) # 数字 7

6月28日 Django form表单

Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确.如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.. Django form组件就实现了上面所述的功能. 总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 普通的登录 views.p