注册的form

# 注册的form
class RegForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput, label='密码', min_length=6)  # 重写默认字段
    re_password = forms.CharField(widget=forms.PasswordInput, label='确认密码', min_length=6)  # 新增字段

    class Meta:
        model = models.UserProfile  # 指定model
        fields = '__all__'  # ['username','password']  # 指定字段
        exclude = ['is_active']

        labels = {
            'username': '用户名'
        }

        widgets = {
            'username': forms.TextInput(attrs={'class': 'form-control', 'placeholder': '用户名'}),
            # 'password': forms.PasswordInput(attrs={'class': 'form-control'})

        }
        error_messages = {

            'min_length': '不能少于6位'
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 自定义操作
        for field in self.fields.values():
            # field.widget.attrs['class'] = 'form-control'
            field.widget.attrs.update({'class': 'form-control'})

    def clean(self):
        pwd = self.cleaned_data.get('password', '')
        re_pwd = self.cleaned_data.get('re_password', '')

        if pwd == re_pwd:
            # 密码加密
            md5 = hashlib.md5()
            md5.update(pwd.encode('utf-8'))
            pwd = md5.hexdigest()

            self.cleaned_data['password'] = pwd
            return self.cleaned_data
        # 两次密码不一致
        self.add_error('re_password', '两次密码不一致!!')
        raise ValidationError('两次密码不一致')

  

posted on 2019-07-08 22:09  哎呀!土豆  阅读(105)  评论(0编辑  收藏  举报

导航