Esempio n. 1
0
class PwdForm(Form):
    """修改密码Form"""

    old_password = fields.CharField(
        max_length=64,
        error_messages={'required': '原密码不能为空'},
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入原密码"
        }))

    new_password = fields.RegexField(
        regex=r"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,12}$",
        max_length=64,
        error_messages={
            'required': '新密码不能为空',
            'invalid': '新密码格式有误,请重新输入'
        },
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': "6-12位字母与数字组合"
        }))

    repeat_password = fields.RegexField(
        regex=r"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,12}$",
        max_length=64,
        error_messages={
            'required': '确认密码不能为空',
            'invalid': '确认密码格式有误,请重新输入'
        },
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': "请再次输入新密码"
        }))
Esempio n. 2
0
class UserProfileForm(forms.Form):
    username_rex = '^[A-Za-z][A-Za-z0-9_]{%s,%s}$' \
                   % (config.reg_username_min_len, config.reg_username_max_len)
    password_rex = '^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\!]).{8,32}$'

    email = forms.EmailField(max_length=128, required=False)
    phone = fields.RegexField("^1\d{10}$",
                              required=True,
                              error_messages={
                                  'invalid': "手机号格式不对",
                                  'required': '手机号不能为空'
                              })

    username = fields.RegexField(username_rex,
                                 required=True,
                                 error_messages={
                                     'invalid': '用户名格式不合法',
                                     'required': '用户名不能为空'
                                 })

    password = fields.RegexField(password_rex,
                                 required=True,
                                 error_messages={
                                     'invalid': '密码不合法',
                                     'required': '密码不能为空'
                                 })

    password2 = fields.RegexField(password_rex,
                                  required=True,
                                  error_messages={
                                      'invalid': '密码不合法',
                                      'required': '密码不能为空'
                                  })
Esempio n. 3
0
class RegisterForm(BaseForm, django_forms.Form):
    username = fields.CharField(
        # required= False,
        error_messages={
            'required': '用户名不能为空',
        })

    email = fields.EmailField(error_messages={
        'required': '邮箱不能为空',
        'invalid': '邮箱格式不正确',
    })

    password = fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        error_messages={
            'required': '密码不能为空',
            'invalid': '密码必须包含字母,数字,特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符",
        })

    second_password = fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        error_messages={
            'required': '确认密码不能为空',
            'invalid': '确认密码必须包含字母,数字,特殊字符',
            'min_length': "确认密码长度不能小于8个字符",
            'max_length': "确认密码长度不能大于32个字符",
        })

    check_code = fields.CharField(error_messages={'required': '验证码不能为空'})

    def clean_username(self):
        v = self.cleaned_data.get(
            'username')  # self.cleaned_data其实就是self.request.POST
        user_count = models.UserInfo.objects.filter(username=v).count()
        if user_count:
            raise ValidationError(message='用户名已存在')
        return v

    def clean_check_code(self):
        # if self.request.session.get('CheckCode').upper() != self.request.POST.get('check_code').upper():
        if self.request.session.get('CheckCode').upper(
        ) != self.cleaned_data.get('check_code').upper():
            raise ValidationError(message='验证码错误', code='invalid')

    def clean(self):
        password = self.cleaned_data.get('password')
        sec_password = self.cleaned_data.get('second_password')

        if password != sec_password:
            raise ValidationError('两次密码不一致')
        return self.cleaned_data
Esempio n. 4
0
class ActivistInfoForm(Form):
    """积极分子信息修改Form"""

    activist_name = fields.RegexField(
        regex=r'^[\u4E00-\u9FA5]{2,6}$',
        max_length=32,
        error_messages={
            'required': '姓名不能为空!',
            'invalid': '姓名格式有误!'
        },
        widget=fields.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入姓名(2-6个汉字)"
        }))

    activist_gender = fields.ChoiceField(choices=(('男', '男'), ('女', '女')),
                                         initial='男',
                                         widget=widgets.Select())

    activist_phone = fields.RegexField(
        regex=r"^1[356789]\d{9}$",
        max_length=32,
        error_messages={
            'required': '手机号码不能为空!',
            'invalid': '手机号码格式有误!'
        },
        widget=fields.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入手机号码"
        }))

    activist_email = fields.EmailField(
        max_length=32,
        error_messages={
            'required': '邮箱不能为空!',
            'invalid': '邮箱格式有误!'
        },
        widget=fields.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入邮箱"
        }))

    apply_date = forms.DateField(error_messages={'required': '申请入党日期不能为空!'},
                                 widget=forms.TextInput(attrs={
                                     'class': 'form-control',
                                     'type': 'date'
                                 }))

    voluntary_time = fields.IntegerField(
        error_messages={'required': '志愿时长不能为空!'},
        widget=forms.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入正整数的时长"
        }))
Esempio n. 5
0
class RegisterForm(BaseForm, forms.Form):
    username = fields.CharField(min_length=6,
                                max_length=20,
                                error_messages={
                                    'required': '用户名不能为空',
                                    'min_length': '用户名长度不小于6字符',
                                    'max_length': '用户名长度不大于32字符'
                                })

    password = fields.RegexField(
        regex=
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=12,
        max_length=32,
        error_messages={
            'required': '密码不能为空',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': '用户名长度不小于12字符',
            'max_length': '用户名长度不大于32字符'
        })

    confirm_password = fields.RegexField(
        regex=
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=12,
        max_length=32,
        error_messages={
            'required': '密码不能为空',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': '用户名长度不小于12字符',
            'max_length': '用户名长度不大于32字符'
        })

    check_code = fields.CharField(max_length=4,
                                  error_messages={
                                      'required': '验证码错误',
                                      'max_length': '验证码错误'
                                  })

    def clean_check_code(self):
        if self.request.session.get('CheckCode').upper(
        ) != self.request.POST.get('check_code').upper():
            raise ValidationError(message='验证码错误', code='invalid')

    def clean(self):
        if 'password' in self.cleaned_data and 'confirm_password' in self.cleaned_data:
            v1 = self.cleaned_data['password']
            v2 = self.cleaned_data['confirm_password']
            if v1 == v2:
                pass
            else:
                from django.core.exceptions import ValidationError, NON_FIELD_ERRORS
                raise ValidationError('密码输入不一致')
Esempio n. 6
0
class LoginForm(BaseForm, django_forms.Form):
    username = django_fields.CharField(min_length=6,
                                       max_length=20,
                                       error_messages={
                                           'required': '用户名不能为空.',
                                           'min_length': "用户名长度不能小于6个字符",
                                           'max_length': "用户名长度不能大于32个字符"
                                       })
    password = django_fields.RegexField(
        #正则表达
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=12,
        max_length=32,
        error_messages={
            'required': '密码不能为空.',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符"
        })
    #验证码框
    check_code = django_fields.CharField(
        error_messages={'required': '验证码不能为空.'})

    #内置勾子 验证码 校对
    def clean_check_code(self):
        #获取输入的验证码                                      生成的验证码
        if self.request.session.get('CheckCode').upper(
        ) != self.request.POST.get('check_code').upper():
            #不相等  返回错误信息
            raise ValidationError(message='验证码错误', code='invalid')
class PasswordForm(Form):
    def __init__(self, request, *args, **kwargs):
        super(PasswordForm, self).__init__(*args, **kwargs)
        self.user = request.session.get('user_info')

    pwd = fields.CharField(widget=widgets.PasswordInput(
        attrs={'class': 'form-control'}))
    pwd1 = fields.RegexField(
        regex=r'^(?=.*[A-z])(?=.*\d)(?=.*[#@!~%^&*])[A-z\d#@!~%^&*]{8,16}$',
        min_length=8,
        max_length=16,
        error_messages={
            'required': '密码不能为空',
            'invalid': '密码必须包含字母数字和特殊字符',
            'min_length': '密码长度不能小于8个字符',
            'max_length': '密码长度不能超过16个字符',
        },
        widget=widgets.PasswordInput(attrs={'class': 'form-control'}),
        # validators=[RegexValidator(r'^(?=.*[A-z])(?=.*\d)(?=.*[#@!~%^&*])[A-z\d#@!~%^&*]{8,16}$')]
    )
    pwd2 = fields.CharField(widget=widgets.PasswordInput(
        attrs={'class': 'form-control'}))

    def clean_pwd(self):
        if self.cleaned_data.get('pwd') != self.user['pwd']:
            raise ValidationError('原密码不正确!')
        return self.cleaned_data['pwd']

    def clean(self):
        value_dict = self.cleaned_data
        pwd1 = value_dict.get('pwd1')
        pwd2 = value_dict.get('pwd2')
        if pwd1 != pwd2:
            raise ValidationError('两次密码不一致')
        return self.cleaned_data
Esempio n. 8
0
class RegisterForm(BaseForm, django_forms.Form):
    username = django_fields.CharField(min_length=6,
                                       max_length=20,
                                       error_messages={
                                           'required': '用户名不能为空.',
                                           'min_length': "用户名长度不能小于6个字符",
                                           'max_length': "用户名长度不能大于32个字符"
                                       })
    password = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=6,
        max_length=32,
        error_messages={
            'required': '密码不能为空.',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符"
        })
    email = django_fields.EmailField()
    confirm_password = django_fields.CharField()
    check_code = django_fields.CharField(
        error_messages={'required': '验证码不能为空'})
    nickname = django_fields.CharField()
    print(username, nickname)

    def clean_check_code(self):
        if self.request.session.get('CheckCode').upper(
        ) != self.request.POST.get('check_code').upper():
            raise ValidationError(message='验证码错误', code='invalid')

    def clean_confirm_password(self):
        if self.request.POST.get('password').upper() != self.request.POST.get(
                'confirm_password').upper():
            raise ValidationError(message='密码不一致', code='invalid')
class CheckForm(c_forms.Form):
    new_password = c_fields.RegexField(
        '(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}',
        # 密码必须同时包含大写、小写、数字和特殊字符其中三项且至少8位
        strip=True,
        min_length=8,
        max_length=30,
        error_messages={
            'required': '新密码不能为空.',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于30个字符"
        })
    old_password = c_fields.CharField(error_messages={'required': '确认密码不能为空'})
    ensure_password = c_fields.CharField(
        error_messages={'required': '确认密码不能为空'})
    user_email = c_fields.CharField(error_messages={
        'required': '邮箱不能为空',
        'invalid': '邮箱格式错误'
    })

    def clean(self):
        pwd0 = self.cleaned_data.get('old_password')
        pwd1 = self.cleaned_data.get('new_password')
        pwd2 = self.cleaned_data.get('ensure_password')
        if pwd1 == pwd2:
            pass
        elif pwd0 == pwd1:
            # 这里异常模块导入要放在函数里面,放到文件开头有时会报错,找不到
            from django.core.exceptions import ValidationError
            raise ValidationError('新旧密码不能一样')
        else:
            from django.core.exceptions import ValidationError
            raise ValidationError('新密码和确认密码输入不一致')
Esempio n. 10
0
class InfoForm(Form):
    """完善信息Form"""
    # """修改信息Form"""

    activist_email = fields.EmailField(
        max_length=32,
        error_messages={'required': '邮箱不能为空', 'invalid': '邮箱格式有误!'},
        widget=fields.TextInput(attrs={'class': 'form-control', 'placeholder': "请输入邮箱"})
    )

    activist_phone = fields.RegexField(
        regex=r"^1[356789]\d{9}$",
        max_length=32,
        error_messages={'required': '手机号码不能为空', 'invalid': '手机号码格式有误!'},
        widget=fields.TextInput(attrs={'class': 'form-control', 'placeholder': "请输入手机号码"})
    )
    apply_date = forms.DateField(
        error_messages={'required': '申请入党日期不能为空'},
        widget=forms.TextInput(attrs={'class': 'form-control', 'type': 'date'})
    )

    voluntary_time = fields.IntegerField(
        error_messages={'required': '志愿时长不能为空!'},
        widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': "请输入正整数的时长"})
    )
Esempio n. 11
0
class LoginForm(BaseForm, django_forms.Form):
    username = django_fields.CharField(
        # min_length=6,
        # max_length=20,
        error_messages={
            'required': '用户名不能为空.',
            'min_length': "用户名长度不能小于6个字符",
            'max_length': "用户名长度不能大于32个字符"
        })
    password = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        error_messages={
            'required': '密码不能为空.',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符"
        })
    rmb = django_fields.IntegerField(required=False)

    check_code = django_fields.CharField(
        error_messages={'required': '验证码不能为空.'})

    def clean_check_code(self):
        if self.request.session.get('CheckCode').upper(
        ) != self.request.POST.get('check_code').upper():
            raise ValidationError(message='验证码错误', code='invalid')
Esempio n. 12
0
class Register(ac_forms.Form):
    username = ac_fields.CharField(error_messages={'required': '用户名不能为空'})
    #password = ac_fields.CharField(error_messages={'required': '密码不能为空'})
    password = ac_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        error_messages={
            'required': '密码不能为空.',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符"
        })
    repassword = ac_fields.CharField(error_messages={'required': '确认密码不能为空'})
    email = ac_fields.CharField(error_messages={
        'required': '邮箱不能为空',
        'invalid': '邮箱格式错误'
    })
    check_code = ac_fields.CharField(error_messages={
        'required': '验证码不能为空',
        'invalid': '邮箱格式错误'
    })

    def clean(self):
        pwd1 = self.cleaned_data.get('password')
        pwd2 = self.cleaned_data.get('repassword')
        if pwd1 == pwd2:
            pass
        else:
            #from django.core.exceptions import ValidationError
            raise ValidationError('两次密码输入不一致')
Esempio n. 13
0
class LoginForm(BaseForm, forms.Form):
    username = fields.CharField(min_length=6,
                                max_length=20,
                                error_messages={
                                    'required': '用户名不能为空',
                                    'min_length': '用户名长度不小于6字符',
                                    'max_length': '用户名长度不大于20字符'
                                })

    password = fields.RegexField(
        regex=
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=12,
        max_length=32,
        error_messages={
            'required': '密码不能为空',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': '用户名长度不小于12字符',
            'max_length': '用户名长度不大于32字符'
        })

    # 过期时间
    rmb = fields.IntegerField(required=False)

    check_code = fields.CharField(max_length=4,
                                  error_messages={
                                      'required': '验证码错误',
                                      'max_length': '验证码错误'
                                  })

    def clean_check_code(self):
        if self.request.session.get('CheckCode').upper(
        ) != self.request.POST.get('check_code').upper():
            raise ValidationError(message='验证码错误', code='invalid')
Esempio n. 14
0
class RegisterForm(BaseForm, django_forms.Form):
    username1 = django_fields.CharField(min_length=3,
                                        max_length=20,
                                        error_messages={
                                            'required': '用户名不能为空.',
                                            'min_length': "用户名长度不能小于3个字符",
                                            'max_length': "用户名长度不能大于32个字符"
                                        })
    email1 = django_fields.EmailField(error_messages={
        'required': '邮箱不能为空.',
        'invalid': "邮箱格式错误"
    })
    password1 = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        error_messages={
            'required': '密码不能为空.',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符"
        })
    password2 = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        error_messages={
            'required': '密码不能为空.',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符"
        })
    check_code1 = django_fields.CharField(
        error_messages={'required': '验证码不能为空.'})

    def clean_check_code1(self):
        if self.request.session.get('CheckCode').upper(
        ) != self.request.POST.get('check_code1').upper():
            raise ValidationError(message='验证码错误!!!', code='invalid')

    def clean_password2(self):
        password1 = self.cleaned_data.get('password1')
        password2 = self.cleaned_data.get('password2')
        if password1 and password2 and password1 != password2:
            raise ValidationError("两次密码输入不一致!!!")
        return password2
class RegisterForm(Form):
    """
    注册表单
    """
    def __init__(self, request, *args, **kwargs):
        self.request = request
        super(RegisterForm, self).__init__(*args, **kwargs)

    username = fields.CharField(min_length=2,
                                max_length=16,
                                error_messages={
                                    'required': '用户名不能为空',
                                    'max_length': '用户名长度不能超过16位字符',
                                    'min_length': '用户名长度不能小于2个字符',
                                })
    pwd = fields.RegexField(
        regex=r'^(?=.*[A-z])(?=.*\d)(?=.*[#@!~%^&*])[A-z\d#@!~%^&*]{8,16}$',
        min_length=8,
        max_length=16,
        error_messages={
            'required': '密码不能为空',
            'invalid': '密码必须包含字母数字和特殊字符',
            'min_length': '密码长度不能小于8个字符',
            'max_length': '密码长度不能超过16个字符',
        },
        # validators=[RegexValidator(r'^(?=.*[A-z])(?=.*\d)(?=.*[#@!~%^&*])[A-z\d#@!~%^&*]{8,16}$')]
    )
    pwd2 = fields.CharField()
    email = fields.EmailField(error_messages={'invalid': '请输入正确的邮箱格式'})
    check_code = fields.CharField(error_messages={'required': '验证码不能为空'})

    def clean_check_code(self):
        if self.request.session.get('check_code').lower(
        ) != self.cleaned_data.get('check_code').lower():
            raise ValidationError(code='invalid', message='验证码错误')
        return self.cleaned_data['check_code']

    def clean_username(self):
        username = self.cleaned_data.get('username')
        obj = UserInfo.objects.filter(username=username).first()
        if obj:
            raise ValidationError(code='invalid', message='该用户名已注册')
        return self.cleaned_data['username']

    def clean_email(self):
        email = self.cleaned_data.get('email')
        obj = UserInfo.objects.filter(email=email).first()
        if obj:
            raise ValidationError(code='invalid', message='该邮箱已注册')
        return self.cleaned_data['email']

    def clean(self):
        value_dict = self.cleaned_data
        pwd = value_dict.get('pwd')
        pwd2 = value_dict.get('pwd2')
        if pwd != pwd2:
            raise ValidationError('两次密码不一致')
        return self.cleaned_data
Esempio n. 16
0
class CreateUserForm(django_forms.Form):

    username = django_fields.CharField(label='账号',
                                       min_length=4,
                                       max_length=20,
                                       error_messages={
                                           'required': '用户名不能为空',
                                           'min_length': '用户名长度不能小于4个字符',
                                           'max_length': '用户名长度不能大于20个字符'
                                       })

    password = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{3,32}$',
        label='请输入密码',
        min_length=3,
        max_length=32,
        error_messages={
            'requeird': '用户名不能为空',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于3个字符",
            'max_length': "密码长度不能大于32个字符"
        })
    passwordagain = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{3,32}$',
        label='请再次输入密码',
        min_length=3,
        max_length=32,
        error_messages={
            'requeird': '用户名不能为空',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符"
        })
    mail = django_fields.EmailField(label='邮件', )
    name = django_fields.CharField(label='用户名', )

    def clean(self):
        clean_data = super(CreateUserForm, self).clean()
        username = clean_data.get('username')
        if User.objects.filter(username=username):
            raise ValidationError(message='账号已存在', code='invalid')
        password = clean_data.get("password")
        passwordagain = clean_data.get("passwordagain")
        if password != passwordagain:
            raise ValidationError(message='密码需要相同', code='invalid')
class EditUserForm(Form):
    """
    编辑用户表单
    """
    def __init__(self, request, *args, **kwargs):
        self.request = request
        super(EditUserForm, self).__init__(*args, **kwargs)

    id = fields.IntegerField()
    username = fields.CharField(min_length=2,
                                max_length=16,
                                error_messages={
                                    'required': '用户名不能为空',
                                    'max_length': '用户名长度不能超过16位字符',
                                    'min_length': '用户名长度不能小于2个字符',
                                })
    nickname = fields.CharField(max_length=32,
                                min_length=2,
                                error_messages={
                                    'required': '用户名不能为空',
                                    'max_length': '用户名长度不能超过32位字符',
                                    'min_length': '用户名长度不能小于2个字符',
                                })
    pwd = fields.RegexField(
        regex=r'^(?=.*[A-z])(?=.*\d)(?=.*[#@!~%^&*])[A-z\d#@!~%^&*]{8,16}$',
        min_length=8,
        max_length=16,
        error_messages={
            'required': '密码不能为空',
            'invalid': '密码必须包含字母数字和特殊字符',
            'min_length': '密码长度不能小于8个字符',
            'max_length': '密码长度不能超过16个字符',
        })
    email = fields.EmailField(error_messages={'invalid': '请输入正确的邮箱格式'})

    def clean_username(self):
        username = self.cleaned_data.get('username')
        obj = UserInfo.objects.filter(username=username).first()
        if obj and obj.id != self.cleaned_data['id']:
            raise ValidationError(code='invalid', message='该用户名已注册')
        return self.cleaned_data['username']

    def clean_nickname(self):
        nickname = self.cleaned_data.get('nickname')
        obj = UserInfo.objects.filter(nickname=nickname).first()
        if obj and obj.id != self.cleaned_data['id']:
            raise ValidationError(code='invalid', message='该昵称已注册')
        return self.cleaned_data['nickname']

    def clean_email(self):
        email = self.cleaned_data.get('email')
        obj = UserInfo.objects.filter(email=email).first()
        if obj and obj.id != self.cleaned_data['id']:
            raise ValidationError(code='invalid', message='该邮箱已注册')
        return self.cleaned_data['email']
Esempio n. 18
0
class InfoForm(Form):
    """完善信息Form"""
    """修改信息Form"""

    admin_name = fields.RegexField(
        regex=r'^[\u4E00-\u9FA5]{2,6}$',
        max_length=32,
        error_messages={
            'required': '姓名不能为空',
            'invalid': '姓名格式有误!'
        },
        widget=fields.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入真实姓名(2-6个字)"
        }))

    admin_gender = fields.ChoiceField(choices=(('男', '男'), ('女', '女')),
                                      initial='男',
                                      widget=widgets.Select())

    admin_email = fields.EmailField(
        max_length=32,
        error_messages={
            'required': '邮箱不能为空',
            'invalid': '邮箱格式有误!'
        },
        widget=fields.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入邮箱"
        }))

    admin_phone = fields.RegexField(
        regex=r"^1[356789]\d{9}$",
        max_length=32,
        error_messages={
            'required': '手机号码不能为空',
            'invalid': '手机号码格式有误!'
        },
        widget=fields.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入手机号码"
        }))
Esempio n. 19
0
class RegisterForm(BaseForm, django_forms.Form):
    username = django_fields.CharField(
        min_length=6,
        max_length=20,
        required=True,
        error_messages={'required': '用户名不能为空.', 'min_length': "用户名长度不能小于6个字符", 'max_length': "用户名长度不能大于32个字符"}
    )
    password = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        required=True,
        error_messages={'required': '密码不能为空.',
                        'invalid': '密码必须包含数字,字母、特殊字符',
                        'min_length': "密码长度不能小于8个字符",
                        'max_length': "密码长度不能大于32个字符"}
    )
    confirm_password = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        required=True,
        error_messages={'required': '密码不能为空.',
                        'invalid': '密码必须包含数字,字母、特殊字符',
                        'min_length': "密码长度不能小于8个字符",
                        'max_length': "密码长度不能大于32个字符"}
    )

    def clean_username(self):
        post_username = self.cleaned_data['username']
        if models.UserInfo.objects.filter(username=post_username).exists():
            raise ValidationError('用户已注册')
        return post_username

    def clean(self):
        v1 = self.cleaned_data.get('password')
        v2 = self.cleaned_data.get('confirm_password')
        if v1 == v2:
            return self.cleaned_data
        else:
            raise ValidationError('密码输入不一致')
Esempio n. 20
0
class RegisterForm(BaseForm, Form):
    USER_REG = r'[a-zA-Z0-9]{6,18}'
    EMAIL_REG = r"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+(com|net|cn|org|me|cc|biz)$"
    PWD_REG = r'^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[~!@#$%^&*?+\-\/=_])[0-9a-zA-Z~!@#$%^&*?+\-\/=_]{8,32}$'

    user = fields.RegexField(USER_REG, error_messages={'invalid': '用户名6~18个字符'})
    email = fields.RegexField(EMAIL_REG, error_messages={'invalid': '邮箱格式不正确'})
    pwd = fields.RegexField(PWD_REG, error_messages={'invalid': '8~32个字符,须含数字,字母,特殊字符'})
    confirm_pwd = fields.CharField(required=True, error_messages={'required': '确认密码不能为空'})
    check_code = fields.CharField(required=True, error_messages={'required': '验证码不能为空'})

    def clean_user(self):
        data = self.cleaned_data.get("user")
        if User.objects.filter(name=data).count():
            raise ValidationError("该用户名已被注册")
        else:
            return data

    def clean_email(self):
        data = self.cleaned_data.get("email")
        if User.objects.filter(email=data).count():
            raise ValidationError("该邮箱已被注册")
        else:
            return data

    def clean_check_code(self):
        data = self.cleaned_data.get("check_code", '').upper()
        code = self.request.session.get("check_code", '')       # session本来就保存的是upper数据
        if code != data:
            raise ValidationError("验证码错误")
        else:
            return data

    def clean(self):
        data = self.cleaned_data
        pwd = data.get('pwd', False)    # 如果前面密码都没有验证通过,那么clean_data中就没有pwd键值对,此时也不要要验证密码是否一致
        if (not pwd) or pwd == data.get('confirm_pwd'):
            return data
        else:
            raise ValidationError('两次输入密码不一致')
Esempio n. 21
0
class RegisterForm(BaseForm, django_forms.Form):
    username = django_fields.CharField(min_length=6,
                                       max_length=20,
                                       error_messages={
                                           'required': '用户名不能为空.',
                                           'min_length': "用户名长度不能小于6个字符",
                                           'max_length': "用户名长度不能大于32个字符"
                                       })
    password = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        error_messages={
            'required': '密码不能为空.',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符"
        })
    cpassword = django_fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        error_messages={
            'required': '输入为空!.',
            'invalid': '密码必须包含数字,字母、特殊字符',
            'min_length': "密码长度不能小于8个字符",
            'max_length': "密码长度不能大于32个字符"
        })

    email = django_fields.EmailField(error_messages={
        'invalid': '邮箱格式错误',
        'required': '邮箱不能为空'
    })

    def clean_check_code(self):
        if self.request.POST.get('password') != self.request.POST.get(
                'cpassword'):
            raise ValidationError('两次密码不一致')
Esempio n. 22
0
class TransferInForm(Form):
    """党员转入Form"""

    username = fields.CharField(
        min_length=6,
        max_length=13,
        error_messages={
            'required': '用户名不能为空',
            'invalid': '用户名格式有误,请重新输入'
        },
        widget=forms.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入用户名(6-13位)"
        }))

    member_name = fields.RegexField(
        regex=r'^[\u4E00-\u9FA5]{2,6}$',
        max_length=32,
        error_messages={
            'required': '姓名不能为空',
            'invalid': '姓名格式有误,请重新输入'
        },
        widget=fields.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入姓名(2-6个汉字)"
        }))

    member_gender = fields.ChoiceField(choices=(('男', '男'), ('女', '女')),
                                       initial='男',
                                       widget=widgets.Select())

    member_status = fields.ChoiceField(choices=(('正式党员', '正式党员'), ('预备党员',
                                                                   '预备党员')),
                                       initial='正式党员',
                                       widget=widgets.Select())

    in_date = forms.DateField(error_messages={'required': '转入日期不能为空'},
                              widget=forms.TextInput(attrs={
                                  'class': 'form-control',
                                  'type': 'date'
                              }))

    come_from_party = fields.CharField(
        max_length=256,
        error_messages={'required': '转自组织内容不能为空'},
        widget=forms.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入转自什么组织"
        }))
Esempio n. 23
0
class LoginForm(BaseForm, Form):
    USER_REG = r'[a-zA-Z0-9]{6,18}'
    PWD_REG = r'^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[~!@#$%^&*?+\-\/=_])[0-9a-zA-Z~!@#$%^&*?+\-\/=_]{8,32}$'
    user = fields.RegexField(USER_REG, error_messages={'invalid': '用户名6~18个字符'})
    pwd = fields.RegexField(PWD_REG, error_messages={'invalid': '8~32个字符,须含数字,字母,特殊字符'})
    check_code = fields.CharField(required=True, error_messages={'required': '验证码不能为空'})

    def clean_check_code(self):
        data = self.cleaned_data.get("check_code", '').upper()
        code = self.request.session.get("check_code", '')       # session本来就保存的是upper数据
        if code != data:
            raise ValidationError("验证码错误")
        else:
            return data

    def clean(self):
        data = self.cleaned_data
        name = data.get("user")
        pwd = data.get("pwd")
        u = User.objects.filter(name=name).first()
        if u and bcrypt.checkpw(pwd.encode(encoding='utf-8'), u.pwd.encode(encoding='utf-8')):   # 用户存在且密码 验证通过
            return data
        else:
            raise ValidationError("用户名或密码错误")
Esempio n. 24
0
class LoginForm(BaseForm, forms.Form):
    username = fields.CharField(error_messages={
        'required': '用户名不能为空',
    })

    password = fields.RegexField(
        '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{8,32}$',
        min_length=8,
        max_length=32,
        error_messages={
            'required': '密码不能为空',
            'min_length': '密码不能小于8个字符',
            'max_length': '密码不能大于32个字符',
            'invalid': '密码必须包含字母,数字和特殊字符',
        })

    rmb = fields.IntegerField(required=False)

    check_code = fields.CharField(error_messages={
        'required': '验证码不能为空',
    })

    def clean_check_code(self):
        if self.request.session.get('CheckCode').upper(
        ) != self.cleaned_data.get('check_code').upper():
            raise ValidationError(message='验证码错误')

    def clean_rmb(self):
        if self.cleaned_data.get('rmb', None):
            # print(111,self.cleaned_data.get('rmb', None))
            self.rmb = True

    def clean(self):
        username = self.cleaned_data.get('username')
        password = self.cleaned_data.get('password')

        userinfo = models.UserInfo.objects.filter(username=username,
                                                  password=password).values(
                                                      'uid', 'nickname',
                                                      'username', 'email',
                                                      'avatar', 'blog__bid',
                                                      'blog__site').first()

        if not userinfo:
            raise ValidationError(message='用户名或密码错误')
        self.userinfo = userinfo

        return self.cleaned_data
Esempio n. 25
0
class Information(ModelForm):
    nickname = fields.CharField(
        max_length=16,
        min_length=1,
        error_messages={
            'required': '昵称不能为空',
            "invalid": '不能包含非法字符'
        },
        widget=widgets.TextInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))

    email = fields.EmailField(
        max_length=32,
        min_length=8,
        error_messages={
            'required': '邮箱不能为空',
            "invalid": '请输入正确邮箱'
        },
        widget=widgets.EmailInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))

    phone = fields.RegexField(
        '^1\d{10}',
        error_messages={
            'required': '手机不能为空',
            "invalid": '请输入正确手机号'
        },
        widget=widgets.TextInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))

    avatar = fields.ImageField(widget=widgets.FileInput(
        attrs={
            'style':
            "width:200px;height:200px;opacity:0;position:absolute;top:0"
        }))

    class Meta:
        model = UserInfo
        fields = ['avatar']
Esempio n. 26
0
class EditPhoneForm(forms.Form):
    password = fields.CharField(error_messages={
        'required': '该字段不能为空',
    })
    phone = fields.RegexField('^[1][358][0-9]{9}$',
                              required=True,
                              error_messages={
                                  'required': '该字段不能为空',
                                  'invalid': '请输入正确的手机号码'
                              })
    verify_code = fields.IntegerField(max_value=9999,
                                      min_value=0000,
                                      error_messages={
                                          'invalid': '验证码输入有误',
                                          'required': '请输入验证码',
                                          'max_value': '验证码输入有误',
                                          'min_value': '验证码输入有误',
                                      })
Esempio n. 27
0
class BlogForm(forms.Form):
    title = fields.CharField(min_length=6,
                             max_length=64,
                             error_messages={
                                 'required': '博客标题不能为空',
                                 'min_length': '用户名长度不小于6字符',
                                 'max_length': '用户名长度不大于32字符'
                             })

    site = fields.RegexField(regex=r'^\w+$',
                             min_length=4,
                             max_length=32,
                             error_messages={
                                 'required': '博客后缀名不能为空',
                                 'min_length': '博客后缀名长度不小于6字符',
                                 'max_length': '博客后缀名长度不大于32字符',
                                 'invalid': '博客后缀名必须由数字、字母、_,组成',
                             })
Esempio n. 28
0
class RegisterForm_1(Form):
    username =fields.CharField(
        required=True,
        min_length=3,
        max_length=15,
        error_messages ={
            "required":"用户名不能为空",
            "min_length":"用户名小于最小长度",
            "max_length":"用户名大于最大长度"
        }
    )
    password =fields.CharField(
        required=True,
        min_length=3,
        max_length=30,
        error_messages ={
            "required":"密码不能为空",
            "min_length":"密码小于最小长度",
            "max_length":"密码大于最大长度"
        }
    )

    password_again =fields.CharField(
        required=True,
        min_length=3,
        max_length=30,
        error_messages ={
            "required":"密码前后不一致",
            "min_length":"密码前后不一致",
            "max_length":"密码前后不一致",
        }
    )
    email =fields.EmailField(
        error_messages={
            "invalid":"email格式不正确"
        }
    )
    phone =fields.RegexField(
        '138\d+',
        error_messages={
            "invalid":"手机号格式不正确"
        }
    )
Esempio n. 29
0
class AddMemberForm(Form):
    """添加成员Form"""

    username = fields.CharField(
        min_length=6,
        max_length=13,
        error_messages={
            'required': '用户名不能为空!',
            'invalid': '用户名格式有误!'
        },
        widget=forms.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入用户名(6-13位)"
        }))

    add_name = fields.RegexField(
        regex=r'^[\u4E00-\u9FA5]{2,6}$',
        max_length=32,
        error_messages={
            'required': '姓名不能为空!',
            'invalid': '姓名格式有误!'
        },
        widget=fields.TextInput(attrs={
            'class': 'form-control',
            'placeholder': "请输入姓名(2-6个汉字)"
        }))

    add_gender = fields.ChoiceField(choices=(('男', '男'), ('女', '女')),
                                    initial='男',
                                    widget=widgets.Select())

    add_status = fields.ChoiceField(choices=(('正式党员', '正式党员'),
                                             ('预备党员', '预备党员'), ('积极分子',
                                                                '积极分子')),
                                    initial='正式党员',
                                    widget=widgets.Select())
Esempio n. 30
0
class DetailedForm(forms.Form):
    """
    required:是否必填
    error_messages:錯誤提示(要透過{{ obj.errors.user.0 }}調用)
    widget:訂製html插件(重要)
    label:訂製標籤名(要透過{{ obj.user.label }}調用)
    initial:默認值
    validators:自訂製驗證規則
    disabled:是否禁止編輯
    """
    user = fields.CharField(
        required=True,
        max_length=12,  # 最大長度
        min_length=3,  # 最小長度
        error_messages={},
        widget=widgets.TextInput(attrs={'n': 123}),  # 參數為自定義屬性
        label="用戶名",
        initial='請輸入用戶名',
        disabled=True,
    )
    age = fields.IntegerField(
        label="年齡",
        max_value=1000,  # 最大值
        min_value=0,  # 最小值
        error_messages={
            'max_value': '太大了',
        })
    email = fields.EmailField(label="信箱", )
    smath = fields.DecimalField()  # 小數
    file = fields.FileField()
    city = fields.ChoiceField(
        choices=[(1, "上海"), (2, "北京"), (3, "南京")],  # (value, 顯示文字)
        initial=3,  # 默認value=3
    )
    hobby = fields.MultipleChoiceField(
        choices=[(1, "籃球"), (2, "電動"), (3, "小說")],  # (value, 顯示文字)
        initial=[1, 2],
    )
    # date = fields.DateField()  # 格式:2015-09-01
    # datetime = fields.DateTimeField()  # 格式:2015-09-01 11:12
    radio = fields.ChoiceField(
        choices=[(1, 'man'), (2, 'woman')],
        widget=widgets.RadioSelect(),
    )
    check = fields.MultipleChoiceField(
        choices=[(1, 'man'), (2, 'woman')],
        widget=widgets.CheckboxSelectMultiple(),
    )
    from django.core.validators import RegexValidator
    my = fields.CharField(
        # 自定義正則一
        # validators可設置多個RegexValidator
        # RegexValidator(正則, 錯誤信息)
        validators=[
            RegexValidator(r"^[0-9]+$", "請輸入數字"),
            RegexValidator(r"^87[0-9]+$", "請以87開頭")
        ], )
    # 自定義正則二
    # fields.RegexField(正則),只可設置單個正則
    my2 = fields.RegexField(r"^[0-9]+$", error_messages={
        "invalid": "請輸入數字",
    })