コード例 #1
0
ファイル: forms.py プロジェクト: mengqingmeng/mysite
 def __init__(self, *args, **kwargs):
     super(RegisterForm, self).__init__(*args, **kwargs)
     self.fields['username'].widget = widgets.TextInput(
         attrs={'placeholder': "用户名"})
     self.fields['email'].widget = widgets.EmailInput(
         attrs={'placeholder': "邮箱"})
     self.fields['password1'].widget = widgets.PasswordInput(
         attrs={'placeholder': "密码"})
     self.fields['password2'].widget = widgets.PasswordInput(
         attrs={'placeholder': "确认密码"})
コード例 #2
0
ファイル: my_forms.py プロジェクト: lp1506947671/MyBlog
class UserForm(forms.Form):
    """
    max_length,label,widget ,error_messages
    user,pwd,re_pwd,email
    """
    user = forms.CharField(
        max_length=32,
        label="用户名",
        error_messages={'required': "该字段不能为空"},
        widget=widgets.TextInput(attrs={"class": "form-control"}))
    pwd = forms.CharField(
        max_length=32,
        label="密码",
        widget=widgets.PasswordInput(attrs={"class": "form-control"}))
    re_pwd = forms.CharField(
        max_length=32,
        label="确认密码",
        widget=widgets.PasswordInput(attrs={"class": "form-control"}))
    email = forms.EmailField(
        max_length=32,
        label="邮箱",
        widget=widgets.EmailInput(attrs={"class": "form-control"}))

    def clean_user(self):
        """
        获取表单中传过来的user
            用户不存在直接换回
            用户存在则直接抛出异常用户已经被注册
        """
        val = self.cleaned_data.get("user")
        user = UserInfo.objects.filter(username=val).first()
        if not user:
            return val
        else:
            raise ValidationError("该用户已经注册")

    def clean(self):
        """
        校验两次输入的密码是否一致
        判断两次输入的密码是否都存在
        都存在:
            相等:返回self.clean_data
            不相等:抛出validationError的错误
        不都存在:
            返回通过校验的数据
        """
        pwd = self.cleaned_data.get("pwd")
        re_pwd = self.cleaned_data.get("re_pwd")
        if pwd and re_pwd:
            if pwd == re_pwd:
                return self.cleaned_data
            else:
                raise ValidationError("密码不一致")
        else:
            return self.cleaned_data
コード例 #3
0
ファイル: blogform.py プロジェクト: SHwuxi/BBS
class UserForm(forms.Form):
    username = forms.CharField(
        max_length=18,
        min_length=3,
        label='用户名',
        widget=widgets.TextInput(attrs={'class': 'form-control'}),
        error_messages={
            'max_length': '最长18位',
            'min_length': '最短3位',
            'required': '该字段必填'
        })
    password = forms.CharField(
        max_length=18,
        min_length=3,
        label='密码',
        widget=widgets.PasswordInput(attrs={'class': 'form-control'}),
        error_messages={
            'max_length': '最长18位',
            'min_length': '最短3位',
            'required': '该字段必填'
        })
    re_password = forms.CharField(
        max_length=18,
        min_length=3,
        label='确认密码',
        widget=widgets.PasswordInput(attrs={'class': 'form-control'}),
        error_messages={
            'max_length': '最长18位',
            'min_length': '最短3位',
            'required': '该字段必填'
        })
    email = forms.EmailField(
        label='邮箱',
        widget=widgets.EmailInput(attrs={'class': 'form-control'}),
        error_messages={
            'required': '该字段必填',
            'invalid': '格式不正确'
        })
    phone = forms.CharField(
        max_length=18,
        min_length=3,
        label='手机号',
        widget=widgets.TextInput(attrs={'class': 'form-control'}),
        error_messages={
            'max_length': '最长18位',
            'min_length': '最短3位',
            'required': '该字段必填'
        })

    def clean(self):
        password = self.cleaned_data.get('password')
        re_password = self.cleaned_data.get('re_password')
        if password != re_password:
            self.add_error('re_password', '两次密码不一致')
        return self.cleaned_data
コード例 #4
0
class RegisterForm(forms.Form):

    username = fields.CharField(
        max_length=16,
        min_length=3,
        required=True,
        label='Username',
        widget=widgets.TextInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Enter username',
                'onchange': 'checkUsername(this);'
            }),
        error_messages={
            'required': '用户名不能为空',
        },
        help_text='Username can just contains integer or letter or _')
    password = fields.CharField(
        required=True,
        max_length=32,
        label='Password',
        widget=widgets.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': 'Enter password'
        }))
    email = fields.EmailField(
        required=True,
        label='Email',
        widget=widgets.EmailInput(attrs={
            'class': 'form-control',
            'placeholder': 'Enter email'
        }),
        help_text="We'll never share your email with anyone else.")
    image = fields.ImageField(required=False,
                              allow_empty_file=True,
                              label='Avatar',
                              widget=widgets.FileInput(attrs={
                                  'class': 'custom-file-input',
                                  'id': 'customFile'
                              }))
    captcha = fields.CharField(
        required=True,
        label='Captcha',
        widget=widgets.Input(attrs={
            'class': 'form-control',
            'placeholder': 'Enter captcha'
        }),
        help_text='Click the captcha to change another.')

    def clean_username(self):
        username = self.cleaned_data['username']
        if User.objects.filter(username=username):
            raise forms.ValidationError('username already existed')
        return username
コード例 #5
0
 class Meta:
     model = User
     exclude = [
         'id', 'password', 'last_login', 'is_superuser', 'is_active',
         'is_staff', 'date_joined', 'user_permissions', 'groups', 'username'
     ]
     widgets = {
         'first_name': widgets.TextInput(attrs={'class': 'form-control'}),
         'last_name': widgets.TextInput(attrs={'class': 'form-control'}),
         'email': widgets.EmailInput(attrs={'class': 'form-control'})
     }
コード例 #6
0
ファイル: forms.py プロジェクト: vabyz971/generator-audit
 class Meta:
     model = User
     fields = ['username', 'email', 'password1', 'password2']
     widgets = {
         'username': widgets.TextInput(attrs={'class': 'form-control'}),
         'email': widgets.EmailInput(attrs={'class': 'form-control'}),
         'password1':
         widgets.PasswordInput(attrs={'class': 'form-control'}),
         'password2': widgets.PasswordInput(attrs={'class':
                                                   'form-control'}, ),
     }
コード例 #7
0
 class Meta:
     model = models.UserInfo
     fields = "__all__"
     error_messages = {
         "name":{"required":"字段不能为空"}
     }
     widgets = {
         "name":widgets.TextInput(attrs={"class":"form-control"}),
         "email":widgets.EmailInput(attrs={"class":"form-control"}),
         "ut":widgets.Select(attrs={"class":"form-control"}),
     }
コード例 #8
0
class ShipmentForm(forms.Form):
    firstname = forms.CharField(widget=widgets.TextInput(attrs={'placeholder': 'Nom', 'class': 'form-control'}))
    lastname = forms.CharField(widget=widgets.TextInput(attrs={'placeholder': 'Prénom', 'class': 'form-control'}))
    email = forms.EmailField(widget=widgets.EmailInput(attrs={'placeholder': 'Email', 'class': 'form-control'}))
    telephone = forms.CharField(widget=widgets.TextInput(attrs={'placeholder': 'Téléphone', 'class': 'form-control'}))
    address = forms.CharField(widget=widgets.TextInput(attrs={'placeholder': 'Addresse', 'class': 'form-control'}))

    COUNTRIES = [('france', 'France'), ('belgique', 'Belgique')]
    country = forms.CharField(widget=widgets.Select(choices=COUNTRIES, attrs={'placeholder': 'Addresse', 'class': 'custom-select d-block w-100'}))

    zip_code = forms.CharField(widget=widgets.TextInput(attrs={'class': 'form-control'}))
コード例 #9
0
class ContactForm(forms.Form):
    email = fields.EmailField(widget=widgets.EmailInput(attrs=ATTRS))
    conditions = fields.BooleanField(widget=widgets.CheckboxInput(
        attrs=ATTRS.update({'class': ''})))
    message = fields.CharField(widget=widgets.Textarea(attrs=ATTRS))

    def clean_message(self):
        message = self.cleaned_data['message']
        if len(message) > 300:
            raise forms.ValidationError("Le messsage est trop long")
        super().clean()
コード例 #10
0
    def __init__(self, *args, **kwargs):
        super(RegisterForm, self).__init__(*args, **kwargs)

        self.fields['username'].widget = widgets.TextInput(attrs={'placeholder': "用户名", "class": "form-control"})
        self.fields['email'].widget = widgets.EmailInput(attrs={'placeholder': "邮箱", "class": "form-control"})
        # self.fields['password1'].widget = widgets.PasswordInput(
        #     attrs={'placeholder': "请输入密码", "class": "form-control"})
        # self.fields['password2'].widget = widgets.PasswordInput(
        #     attrs={'placeholder': "请再次输入密码", "class": "form-control"})
        self.fields['home_address'].widget = widgets.TextInput(attrs={'placeholder': "家庭地址", "class": "form-control"})
        self.fields['home_address'].widget = widgets.TextInput(attrs={'placeholder': "家庭地址", "class": "form-control"})
コード例 #11
0
ファイル: views.py プロジェクト: SmallMars/blog
class RegForm(forms.Form):
    user = forms.CharField(
        min_length=4,
        max_length=8,
        widget=widgets.TextInput(attrs={"class": "form-control"}),
        error_messages={
            "min_length": "输入过短,最少4个字符",
            "max_length": "输入过长,最多4个字符",
            "required": "必填"
        })
    pwd = forms.CharField(
        min_length=5,
        widget=widgets.PasswordInput(attrs={"class": "form-control"}),
        error_messages={
            "min_length": "输入过短,最少5个字符",
            "required": "必填"
        })
    repeat_pwd = forms.CharField(
        min_length=5,
        widget=widgets.PasswordInput(attrs={"class": "form-control"}),
        error_messages={
            "min_length": "输入过短,最少5个字符",
            "required": "必填"
        })
    email = forms.EmailField(
        min_length=5,
        widget=widgets.EmailInput(attrs={"class": "form-control"}),
        error_messages={
            "min_length": "输入过短,最少5个字符",
            "required": "必填"
        })

    #钩子函数
    def clean_user(self):
        val = self.cleaned_data.get("user")

        import re
        # if not UserInfo.objects.filter(username=val):
        #     return val
        # else:
        #     raise ValidationError("")

        if not val.isdigit():
            return val
        else:
            raise ValidationError("用户名不能是纯数字!")

    def clean_pwd(self):
        val = self.cleaned_data.get("pwd")

        if not val.isdigit():
            return val
        else:
            raise ValidationError("密码不能是纯数字!")
コード例 #12
0
ファイル: forms.py プロジェクト: Axzc/olens
class RegisterForm(forms.Form):

    name = forms.CharField(
        max_length=12,
        min_length=4,
        required=True,
        error_messages={'required': '用户名不能为空', 'invalid': '格式不对'},
        widget=widgets.TextInput(attrs={'class': 'form-control loon luser',
                                        'placeholder': '用户名'})
    )

    password = forms.CharField(
        required=True,
        max_length=32,
        min_length=6,
        error_messages={'required': '密码不能为空', 'invalid':'密码格式不对'},
        widget=widgets.PasswordInput(attrs={'class': 'form-control loon lpass',
                                            'placeholder': '密码在六位以上'})
    )

    password_confum = forms.CharField(
        required=True,
        max_length=32,
        min_length=6,
        error_messages={'required': '密码不能为空', 'invalid':'密码格式不对'},
        widget=widgets.PasswordInput(attrs={'class': 'form-control loon lpass',
                                            'placeholder': '输入再次密码'})
    )

    email = forms.EmailField(
        widget=widgets.EmailInput(attrs={'class':' form-control loon lpass',
                                         'placeholder': '邮箱'})
    )

    def clean(self):

        cleaned_data = self.cleaned_data
        username = self.cleaned_data['name']
        pwd = self.cleaned_data['password']
        re_pwd = self.cleaned_data['password_confum']
        email1 = self.cleaned_data['email']

        if pwd != re_pwd:
            raise forms.ValidationError('两次输入的密码不匹配')

        user = User.objects.filter(username = username)
        if user:
            raise forms.ValidationError('这个用户名已经被注册了')

        em = User.objects.filter(email=email1)
        if em:
            raise forms.ValidationError('该邮箱已经注册了, 登录?')

        return cleaned_data
コード例 #13
0
ファイル: myforms.py プロジェクト: yangxiaoyang123yyy/blog
class MyForm(forms.Form):
    username = forms.CharField(
        max_length=8,
        min_length=3,
        label='用户名',
        error_messages={
            'required': '用户名不能为空',
            'max_length': '用户名最大8位',
            'min_length': '用户名最小3位'
        },
        widget=widgets.TextInput(attrs={'class': 'form-control'}))
    password = forms.CharField(
        max_length=8,
        min_length=3,
        label='密码',
        error_messages={
            'required': '密码不能为空',
            'max_length': '密码最大8位',
            'min_length': '密码最小3位'
        },
        widget=widgets.PasswordInput(attrs={'class': 'form-control'}))
    confirm_password = forms.CharField(
        max_length=8,
        min_length=3,
        label='确认密码',
        error_messages={
            'required': '确认密码不能为空',
            'max_length': '确认密码最大8位',
            'min_length': '确认密码最小3位'
        },
        widget=widgets.PasswordInput(attrs={'class': 'form-control'}))
    email = forms.EmailField(
        label='邮箱',
        error_messages={
            'required': '邮箱不能为空',
            'invalid': '邮箱格式不正确',
        },
        widget=widgets.EmailInput(attrs={'class': 'form-control'}))

    # 局部钩子校验用户名是否存在
    def clean_username(self):
        username = self.cleaned_data.get('username')
        user_obj = models.UserInfo.objects.filter(username=username).first()
        if user_obj:
            self.add_error('username', '用户名已存在')
        return username

    # 全局钩子,校验密码是否一致
    def clean(self):
        password = self.cleaned_data.get('password')
        confirm_password = self.cleaned_data.get('confirm_password')
        if not password == confirm_password:
            self.add_error('confirm_password', '两次密码不一致')
        return self.cleaned_data
コード例 #14
0
ファイル: profile_form.py プロジェクト: runarlevi/VN2_hopur54
 class Meta:
     model = Profile
     exclude = ['id', 'user']
     widgets = {
         'favorite_product':
         widgets.Select(attrs={'class': 'form-control'}),
         'profile_image':
         widgets.TextInput(attrs={'class': 'form-control'}),
         'name': widgets.TextInput(attrs={'class': 'form-control'}),
         'email': widgets.EmailInput(attrs={'class': 'form-control'}),
     }
コード例 #15
0
ファイル: forms.py プロジェクト: ymir17/castleApt
 class Meta:
     model = User
     fields = ('username', 'last_name', 'first_name', 'email', 'password1',
               'password2')
     widgets = {
         'email':
         widgets.EmailInput(attrs={
             'class': 'inputs',
             'placeholder': 'Email'
         }),
     }
コード例 #16
0
ファイル: forms.py プロジェクト: rokuuu1999/NewBrainss
    def __init__(self, *args, **kwargs):
        super(RegisterForm, self).__init__(*args, **kwargs)

        self.fields['username'].widget = widgets.TextInput(
            attrs={'placeholder': "username", "class": "form-control"})
        self.fields['email'].widget = widgets.EmailInput(
            attrs={'placeholder': "email", "class": "form-control"})
        self.fields['password1'].widget = widgets.PasswordInput(
            attrs={'placeholder': "password", "class": "form-control"})
        self.fields['password2'].widget = widgets.PasswordInput(
            attrs={'placeholder': "repeat password", "class": "form-control"})
コード例 #17
0
    def __init__(self, *args, **kwargs):
        super(RegisterForm, self).__init__(*args, **kwargs)

        self.fields['username'].widget = widgets.TextInput(
            attrs={"class": "input100"})
        self.fields['email'].widget = widgets.EmailInput(
            attrs={"class": "input100"})
        self.fields['password1'].widget = widgets.PasswordInput(
            attrs={"class": "input100"})
        self.fields['password2'].widget = widgets.PasswordInput(
            attrs={"class": "input100"})
コード例 #18
0
class UserForm(forms.Form):
    # 定义变量,专门给text类型的输入框添加class
    wid = widgets.TextInput(attrs={'class': 'form-control'})
    # 定义几种通用的类型返回
    error_hints = {'required': '该字段不能为空', 'invalid': '格式错误'}
    # 字段定义如下:
    name = forms.CharField(max_length=12,
                           min_length=4,
                           label='姓名',
                           widget=wid,
                           error_messages=error_hints)
    pwd = forms.CharField(
        label='密码',
        widget=widgets.PasswordInput(attrs={'class': 'form-control'}),
        error_messages=error_hints)
    r_pwd = forms.CharField(
        label='确认密码',
        widget=widgets.PasswordInput(attrs={'class': 'form-control'}),
        error_messages=error_hints)
    age = forms.IntegerField(label='年龄',
                             widget=wid,
                             error_messages=error_hints)
    email = forms.EmailField(
        label='邮箱',
        widget=widgets.EmailInput(attrs={'class': 'form-control'}),
        error_messages=error_hints)
    tel = forms.CharField(label='手机',
                          widget=wid,
                          error_messages=error_hints,
                          max_length=11)

    def clean_name(self):
        name = self.cleaned_data.get('name')
        if not name.isdigit():
            return name
        else:
            raise ValidationError('用户名不能纯数字')

    def clean_tel(self):
        var = self.cleaned_data.get('tel')
        if len(var) == 11:
            return var
        else:
            raise ValidationError('手机账号必须为11位')

    def clean(self):
        pwd = self.cleaned_data.get('pwd')
        r_pwd = self.cleaned_data.get('r_pwd')
        # 正常逻辑是不用在全局钩子进行判断为空相等的  因为最后才会掉入全局钩子的判断
        if pwd and r_pwd and pwd != r_pwd:
            raise ValidationError('两次密码不一致')
        else:
            # 必须存在该行代码
            return self.cleaned_data
コード例 #19
0
class Register(Form):
    username = fields.CharField(
        label='username',
        widget=widgets.TextInput(attrs={'placeholder': '请输入用户名'}))
    email = fields.CharField(
        label='email',
        widget=widgets.EmailInput(attrs={'placeholder': '请输入邮箱'}))
    password = fields.CharField(
        min_length=6,
        label='password',
        widget=widgets.PasswordInput(attrs={'placeholder': '请输入密码'}))
コード例 #20
0
class CheckResetForm(PasswordResetForm):
    """
    Classe do formulário para verificar redifinição de senha por email
    """

    # Classe de Metadados
    class Meta:
        fields = ['email']

        parsley_extras = {
            'email': {
                'remote':
                reverse_lazy('parsley-verificar-email'),
                'remote-message':
                "O Email digitado não está cadastrado no sistema."
            },
        }

    def __init__(self, *args, **kwargs):
        """
        Metódo de inicialização do Form
        """
        super(CheckResetForm, self).__init__(*args, **kwargs)
        # Adicionar a classe CSS 'form-control' para todos os campos do formulário
        for field in self.fields:
            self.fields[field].widget.attrs['class'] = 'form-control'

    form_name = 'reset-form'
    scope_prefix = 'dados_reset'

    # Adicionar a classe CSS 'djng-field-required' para campos obrigatórios
    required_css_class = 'field-required'

    # Email
    email = forms.EmailField(
        label='Email',
        max_length=50,
        min_length=3,
        required=True,
        widget=widgets.EmailInput(
            attrs={
                'data-parsley-trigger': "focusin focusout",
                'data-parsley-remote-options':
                '{ "type": "POST", "dataType": "json" }',
                'placeholder': "*****@*****.**",
            }),
        error_messages={
            'min_length': "Email inválido.",
            'invalid': "Email inválido.",
        })

    initial = {
        'email': '',
    }
コード例 #21
0
ファイル: forms.py プロジェクト: Hacklahoma/Ouroboros
class ResendActivationEmailForm(forms.Form):
    email = forms.EmailField(
        widget=widgets.EmailInput(attrs={"placeholder": "Email"}), label="")

    def clean_email(self):
        data = self.cleaned_data["email"]
        if not User.objects.filter(email=data).exists():
            raise ValidationError("No account with this email exists.")
        user: User = User.objects.get(email=data)
        if user.is_active:
            raise ValidationError("This account has already been activated.")
        return data
コード例 #22
0
class EmailForm(forms.Form):

    email = forms.EmailField(max_length=32,
                             required=True,
                             error_messages={
                                 'required': '邮箱不能为空',
                                 'max_length': '长度超过32位'
                             },
                             widget=widgets.EmailInput(attrs={
                                 'class': 'form-control',
                                 'placeholder': 'Email'
                             }))
コード例 #23
0
ファイル: forms.py プロジェクト: phully/PythonHomeWork
class UserProfileForm(Form):
    name = fields.CharField(
        label="姓名",
        widget=widgets.TextInput(attrs={"class": "form-control"}),
        required=True
    )

    email = fields.EmailField(
        label="邮箱",
        widget=widgets.EmailInput(attrs={"class": "form-control"}),
        required=True,
        error_messages={"invalid": "邮箱格式不正确!"}
    )

    phone = fields.IntegerField(
        label="座机",
        widget=widgets.NumberInput(attrs={"class": "form-control"}),
        required=True,
        error_messages={"invalid": "必须全为数字!"}
    )

    mobile = fields.IntegerField(
        label="手机",
        widget=widgets.NumberInput(attrs={"class": "form-control"}),
        required=True,
        error_messages={"invalid": "必须全为数字!"}
    )

    username = fields.CharField(
        label="用户名",
        widget=widgets.Input(attrs={"class": "form-control"}),
        required=True
    )

    password = fields.CharField(
        label="密码",
        widget=widgets.PasswordInput(attrs={"class": "form-control"}),
        required=True
    )

    password_again = fields.CharField(
        label="确认密码",
        widget=widgets.PasswordInput(attrs={"class": "form-control"}),
        required=True
    )

    def clean_password_again(self):
        password = self.cleaned_data.get("password")
        password_again = self.cleaned_data.get("password_again")
        if password != password_again:
            self.add_error("password_again", "两次密码不一致")
        else:
            return password_again
コード例 #24
0
ファイル: views.py プロジェクト: TakeMeHigher/python
class TeacherForm(Form):
    username = fields.CharField(
        required=True,
        max_length=10,
        error_messages={
            "required": "老师名称不能空",
            "max_length": "老师名称长度不能大于10"
        },
        widget=widgets.TextInput(attrs={
            "placeholder": "老师名称",
            "class": "form-control"
        }))
    password = fields.CharField(
        required=True,
        min_length=6,
        error_messages={
            "required": "密码不能为空",
            "min_length": "密码长度不能小于6"
        },
        widget=widgets.TextInput(attrs={
            "placeholder": "密码",
            "class": "form-control"
        }))

    email = fields.EmailField(required=True,
                              error_messages={
                                  "required": "邮箱不能为空",
                                  "invalid": "邮箱格式不正确"
                              },
                              widget=widgets.EmailInput(attrs={
                                  "placeholder": "邮箱",
                                  "class": "form-control"
                              }))
    sex = fields.ChoiceField(choices=[("m", '男'), ("f", '女')])

    age = fields.IntegerField(required=True,
                              error_messages={"required": "年龄不能为空"},
                              widget=widgets.TextInput(attrs={
                                  "placeholder": "年龄",
                                  "class": "form-control"
                              }))

    teacher_to_cls_id = fields.MultipleChoiceField(choices=[])

    # def __init__(self,*args,**kwargs):
    #     super().__init__(self,*args,**kwargs)
    #     self.fields["teacher_to_cls_id"].choices=models.ClassList.objects.all().values_list("id","caption")

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields[
            "teacher_to_cls_id"].choices = models.ClassList.objects.all(
            ).values_list("id", "caption")
コード例 #25
0
class UserForm(forms.Form):
    name = forms.CharField(
        min_length=4,
        max_length=12,
        label="姓名",
        widget=widgets.TextInput(attrs={"class": "form-control"}),
        error_messages={"required": "该字段不能为空"})
    age = forms.IntegerField(
        label="年龄",
        error_messages={"invalid": "格式错误"},
        widget=widgets.TextInput(attrs={"class": "form-control"}))
    telephone = forms.CharField(
        label="电话号码",
        widget=widgets.TextInput(attrs={"class": "form-control"}))
    email = forms.EmailField(
        label="邮箱", widget=widgets.EmailInput(attrs={"class": "form-control"}))
    pwd = forms.CharField(
        min_length=6,
        label="密码",
        widget=widgets.PasswordInput(attrs={"class": "form-control"}))
    r_pwd = forms.CharField(
        label="确认密码",
        widget=widgets.PasswordInput(attrs={"class": "form-control"}))

    def clean_name(self):

        val = self.cleaned_data.get("name")
        if not val.isdigit():
            return val
        else:
            raise ValidationError('用户名不能是纯数字')

    def clean_telephone(self):
        val = self.cleaned_data.get("telephone")
        if len(val) == 11:
            return val
        else:
            raise ValidationError("手机号码错了")

    def clean_age(self):
        val = self.cleaned_data.get("age")
        if int(val) > 18:
            return val
        else:
            raise ValidationError("岁数太小的")

    def clean(self):
        pwd = self.cleaned_data.get('pwd')
        r_pwd = self.cleaned_data.get("r_pwd")
        if pwd and r_pwd and pwd != r_pwd:
            raise ValidationError("两次密码不一致")
        else:
            return self.cleaned_data
コード例 #26
0
    def __init__(self, *args, **kwargs):
        super(RegisterForm, self).__init__(*args, **kwargs)

        self.fields['username'].widget = widgets.TextInput(
            attrs={'placeholder': '请输入用户名'})
        self.fields['email'].widget = widgets.EmailInput(
            attrs={'placeholder': '请输入邮箱地址'})
        self.fields['password1'].widget = widgets.PasswordInput(
            attrs={'placeholder': '请输入密码'})
        self.fields['password2'].widget = widgets.PasswordInput(
            attrs={'placeholder': '请确认密码'})
        self.fields['captcha'].widget = CaptchaTextInput(
            attrs={'placeholder': '请输入验证码'})
コード例 #27
0
ファイル: forms.py プロジェクト: oys1124/mysite
class BindEmailForm(Form):
    email = fields.EmailField(
        label='邮箱',
        widget=widgets.EmailInput(attrs={
            'class': 'form-control',
            'placeholder': '请输入正确的邮箱'
        }))
    verification_code = fields.CharField(
        label='验证码',
        required=False,
        widget=widgets.TextInput(attrs={
            'class': 'form-control',
            'placeholder': '点击"发送验证码"发送到邮箱'
        }))

    def __init__(self, *args, **kwargs):
        if 'request' in kwargs:
            self.request = kwargs.pop('request')
        super(BindEmailForm, self).__init__(*args, **kwargs)

    def clean(self):
        # 判断用户是否登录
        if self.request.user.is_authenticated:
            self.cleaned_data['user'] = self.request.user
        else:
            raise ValidationError('用户尚未登录')

        # 判断用户是否已绑定邮箱
        if self.request.user.email != '':
            raise ValidationError('你已经绑定邮箱')

        # 判断验证码
        code = self.request.session.get('bind_email_code', '')
        verification_code = self.cleaned_data.get('verification_code', '')
        if not (code != '' and code == verification_code):
            raise ValidationError('验证码不正确')

        return self.cleaned_data

    def clean_email(self):
        email = self.cleaned_data['email']
        if User.objects.filter(email=email).exists():
            raise ValidationError('该邮箱已经被绑定')
        return email

    def clean_verification_code(self):
        verification_code = self.cleaned_data.get('verification_code',
                                                  '').strip()
        if verification_code == '':
            raise ValidationError('验证码不能为空')
        return verification_code
コード例 #28
0
class UserForm(forms.Form):
    user = forms.CharField(
        max_length=32,
        error_messages={"required": "请输入昵称"},
        label="昵 称",
        widget=widgets.TextInput(attrs={"class": "form-control"}, )  # 自定义格式
    )

    pwd = forms.CharField(
        max_length=32,
        error_messages={"required": "密码不能为空"},
        label="密 码",
        widget=widgets.PasswordInput(attrs={"class": "form-control"},
                                     )  # 自定义格式
    )

    re_pwd = forms.CharField(
        max_length=32,
        error_messages={"required": "请确认密码"},
        label="确 认",
        widget=widgets.PasswordInput(attrs={"class": "form-control"},
                                     )  # 自定义格式
    )

    email = forms.EmailField(
        max_length=32,
        error_messages={"required": "请输入邮箱"},
        label="邮  箱",
        widget=widgets.EmailInput(attrs={"class": "form-control"}, )  # 自定义格式
    )

    def clean_user(self):
        val = self.cleaned_data.get("user")

        user = UserInfo.objects.filter(username=val).first()
        if not user:
            return val
        else:
            raise ValidationError("该用户已注册!")

    def clean(self):
        pwd = self.cleaned_data.get("pwd")
        re_pwd = self.cleaned_data.get("re_pwd")

        if pwd and re_pwd:
            if pwd == re_pwd:
                return self.cleaned_data
            else:
                raise ValidationError("两次密码不一致!")
        else:
            return self.cleaned_data
コード例 #29
0
ファイル: account.py プロジェクト: JamieChen-1230/PythonWork
class RegisterForm(forms.Form):
    def __init__(self, request, *args, **kwargs):
        self.request = request
        super(RegisterForm, self).__init__(*args, **kwargs)

    username = fields.CharField(
        widget=widgets.TextInput(attrs={
            "class": "form-control",
            "placeholder": "用戶名"
        }),
        min_length=3,
    )
    nickname = fields.CharField(widget=widgets.TextInput(attrs={
        "class": "form-control",
        "placeholder": "暱稱"
    }), )
    email = fields.EmailField(widget=widgets.EmailInput(attrs={
        "class": "form-control",
        "placeholder": "信箱"
    }), )
    password = fields.CharField(
        widget=widgets.PasswordInput(attrs={
            "class": "form-control",
            "placeholder": "密碼"
        }), )
    password_ck = fields.CharField(
        widget=widgets.PasswordInput(attrs={
            "class": "form-control",
            "placeholder": "密碼確認"
        }), )
    check_code = fields.CharField(
        widget=widgets.TextInput(attrs={
            "class": "form-control",
            "placeholder": "驗證碼"
        }), )

    def clean_check_code(self):
        v1 = self.request.session["check_code"]
        v2 = self.cleaned_data["check_code"]
        if v1.upper() != v2.upper():
            raise ValidationError(message="驗證碼錯誤")
        return v2

    def clean(self):
        value_dict = self.cleaned_data
        v1 = value_dict.get("password")
        v2 = value_dict.get("password_ck")
        if v1 != v2:
            raise ValidationError(message="密碼輸入不一致")
        return self.cleaned_data
コード例 #30
0
class RegForm(forms.Form):
    username = forms.CharField(max_length=15, min_length=5, error_messages={"required": "*用户名不能为空","max_length": "*长度不能大于15",
            "min_length": "*长度不能小于5", },
                               widget=widgets.TextInput(
                                   attrs={"class": "form-control",
                                          "placeholder": "用户名长度不能小于5大于15"
                                   }))
    password = forms.CharField(min_length=6, max_length=25,error_messages={"required": "*密码不能为空",'min_length': '*密码长度大于6位' }, widget=widgets.PasswordInput(
        attrs={"class": "form-control",
               "placeholder": "密码不能为纯数字,字母且长度大于6位"
        }))
    confirm_password = forms.CharField(min_length=6, error_messages={"required": "*密码不能为空", 'min_length': '*密码长度大于6位'},
                                 widget=widgets.PasswordInput(attrs={"class": "form-control", "placeholder": "再次输入密码"}))
    email = forms.EmailField(error_messages={"required": "*邮箱不能为空",'invalid': '*邮箱格式错误' },
                             widget=widgets.EmailInput(attrs={"class": "form-control", "placeholder": "邮箱"}))
    very_code = fields.CharField(error_messages={"required": "验证码不能为空"},
                                  widget=widgets.Input(attrs={"class": "form-control"}))


    def clean_username(self):
        #验证用户存不存在
        #print(self.cleaned_data["username"])
        obj = models.UserInfo.objects.filter(username=self.cleaned_data["username"])
        if not obj:
            #print(self.cleaned_data["username"])
            return self.cleaned_data["username"]
        else:
            raise ValidationError("*用户名已存在")
    def clean_email(self):
         obj = models.UserInfo.objects.filter(email=self.cleaned_data["email"])
         if not obj:
            #print(self.cleaned_data["username"])
            return self.cleaned_data["email"]
         else:
            raise ValidationError("*邮箱已存在")

    def clean_password(self):
        '''验证密码是否合法'''
        data = self.cleaned_data.get("password")
        if not data.isdigit():
            return self.cleaned_data.get("password")
        else:
            raise ValidationError("*密码不能全是数字")

    def clean(self):
        if self.cleaned_data.get("password") == self.cleaned_data.get(
        "confirm_password"):
            return self.cleaned_data
        else:
            raise ValidationError("*两次密码不一致")