class ForgetPwdForm(forms.Form): '''忘记密码''' email = forms.EmailField(required=True) captcha = CaptchaField(error_messages={'invalid': '验证码错误'})
def __init__(self, *args, **kwargs): super(CreatorForm, self).__init__(*args, **kwargs) self.fields['captcha'] = CaptchaField(label=_('Type the code below')) for k in self.fields.keys(): self.fields[k].widget.attrs['class'] = 'form-control'
class ForgetForm(forms.Form): email = forms.EmailField(required=True) captcha = CaptchaField(error_messages={"invalid": u"验证码错误"})
class UserForm(forms.Form): username = forms.CharField(label="用户名", max_length=128, widget=forms.TextInput( attrs={'class': 'form-control', 'placeholder': "Username", 'autofocus': ''})) password = forms.CharField(label="密码", max_length=256, widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': "Password"})) captcha = CaptchaField(label='验证码')
class UserForm(forms.Form): username = forms.CharField(label="用户名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'})) password = forms.CharField(label="密码", max_length=256, widget=forms.PasswordInput(attrs={'class': 'form-control'})) captcha = CaptchaField(label='验证码')
class DynamicLoginForm(forms.Form): mobile = forms.CharField(required=True, min_length=11, max_length=11) captcha = CaptchaField()
class RegisterForm(forms.Form): # 注册页面表单验证 number = forms.IntegerField(required=True) password = forms.CharField(required=True, min_length=5) captcha = CaptchaField(error_messages={"invalid": "验证码错误"})
class LoginForm(forms.Form): username = forms.CharField(label="username", max_length=20) password = forms.CharField(label='password', max_length=20, widget=forms.PasswordInput()) captcha = CaptchaField(label="请输入图片中信息")
class RegistrationCaptcha(Bootstrap3FormMixin, NgModelFormMixin, NgFormValidationMixin, NgModelForm, RegistrationForm): scope_prefix = 'registration_data' form_name = 'registration_form' captcha = CaptchaField()
class ReviewForm(forms.ModelForm): captcha = CaptchaField(label=_("Captcha")) class Meta: model = Review fields = ('author', 'email', 'review')
class CaptchaForm(forms.Form): captcha = CaptchaField(label='Введите текст с картинки', error_messages={'invalid': 'Wrong captcha'}) class Meta: pass
class ResumeForm(TendenciBaseForm): description = forms.CharField(required=False, widget=TinyMCE( attrs={'style': 'width:100%'}, mce_attrs={ 'storme_app_label': Resume._meta.app_label, 'storme_model': Resume._meta.model_name.lower() })) resume_url = forms.CharField( label=_('Resume URL'), help_text=_("Link to an external resume (eg. Google Docs)"), required=False) is_agency = forms.BooleanField( label=_('Agency'), help_text=_("Are you an agency posting this resume?"), required=False) requested_duration = forms.ChoiceField( label=_('Duration'), choices=( ('30', _('30 Days')), ('60', _('60 Days')), ('90', _('90 Days')), ), help_text=_("Amount of days you would like your resume to stay up."), required=False) captcha = CaptchaField(label=_('Type the code below')) contact_email = EmailVerificationField(label=_("Contact email"), required=False) contact_country = CountrySelectField(label=_("Contact country"), required=False) activation_dt = SplitDateTimeField(label=_('Activation Date/Time'), initial=datetime.now()) expiration_dt = SplitDateTimeField(label=_('Expriation Date/Time'), initial=(datetime.now() + timedelta(days=30))) syndicate = forms.BooleanField(label=_('Include in RSS Feed'), required=False, initial=True) status_detail = forms.ChoiceField(choices=( ('active', _('Active')), ('inactive', _('Inactive')), ('pending', _('Pending')), )) class Meta: model = Resume fields = ( 'title', 'slug', 'description', 'resume_url', 'resume_file', 'location', 'skills', 'experience', 'awards', 'education', 'is_agency', 'requested_duration', 'tags', 'contact_name', 'contact_address', 'contact_address2', 'contact_city', 'contact_state', 'contact_zip_code', 'contact_country', 'contact_phone', 'contact_phone2', 'contact_fax', 'contact_email', 'contact_website', 'captcha', 'allow_anonymous_view', 'user_perms', 'group_perms', 'activation_dt', 'expiration_dt', 'syndicate', 'status_detail', ) fieldsets = [(_('Resume Information'), { 'fields': [ 'title', 'slug', 'description', 'resume_url', 'resume_file', 'location', 'skills', 'experience', 'awards', 'education', 'tags', 'requested_duration', 'is_agency', ], 'legend': '' }), (_('Contact'), { 'fields': [ 'contact_name', 'contact_address', 'contact_address2', 'contact_city', 'contact_state', 'contact_zip_code', 'contact_country', 'contact_phone', 'contact_phone2', 'contact_fax', 'contact_email', 'contact_website', ], 'classes': ['contact'], }), (_('Security Code'), { 'fields': [ 'captcha', ], 'classes': ['captcha'], }), (_('Permissions'), { 'fields': [ 'allow_anonymous_view', 'user_perms', 'member_perms', 'group_perms', ], 'classes': ['permissions'], }), (_('Administrator Only'), { 'fields': [ 'activation_dt', 'expiration_dt', 'syndicate', 'status', 'status_detail' ], 'classes': ['admin-only'], })] def __init__(self, *args, **kwargs): super(ResumeForm, self).__init__(*args, **kwargs) if self.instance.pk: self.fields['description'].widget.mce_attrs[ 'app_instance_id'] = self.instance.pk else: self.fields['description'].widget.mce_attrs['app_instance_id'] = 0 # adjust fields depending on user status fields_to_pop = [] if not self.user.is_authenticated(): fields_to_pop += [ 'allow_anonymous_view', 'user_perms', 'member_perms', 'group_perms', 'activation_dt', 'expiration_dt', 'syndicate', 'status_detail' ] else: fields_to_pop += ['captcha'] if not self.user.profile.is_superuser: fields_to_pop += [ 'allow_anonymous_view', 'user_perms', 'member_perms', 'group_perms', 'activation_dt', 'expiration_dt', 'syndicate', 'status_detail' ] for f in list(set(fields_to_pop)): if f in self.fields: self.fields.pop(f) def clean_syndicate(self): """ clean method for syndicate added due to the update done on the field BooleanField -> NullBooleanField NOTE: BooleanField is converted to NullBooleanField because some Boolean data has value of None than False. This was updated on Django 1.6. BooleanField cannot have a value of None. """ data = self.cleaned_data.get('syndicate', False) if data: return True else: return False def clean_resume_file(self): resume = self.cleaned_data['resume_file'] if resume: extension = splitext(resume.name)[1] # check the extension if extension.lower() not in ALLOWED_FILE_EXT: raise forms.ValidationError( _('The file must be of doc, docx, pdf, or rtf format.')) return resume def clean(self): cleaned_data = super(ResumeForm, self).clean() print self.errors return cleaned_data
class LoginForm(forms.Form): """! Clase que autentica usuarios en el sistema. @author William Páez <*****@*****.**> @copyright <a href='https://tinyurl.com/y3tfnema'> Licencia de Software CENDITEL versión 1.2</a> """ # Username para identificar al usuario con su cédula username = IdentificationCardField(validators=[ validators.RegexValidator( r'^[VE][\d]{8}$', 'Introduzca un número de cédula válido. Solo se permiten \ números y una longitud de 8 carácteres. Se agregan ceros \ (0) si la longitud es de 7 o menos caracteres.'), ], help_text='V00000000 ó E00000000') # Clave de acceso del usuario password = forms.CharField( label='Contraseña:', max_length=128, widget=forms.PasswordInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique una contraseña de aceso al sistema' })) # Campo de validación de captcha captcha = CaptchaField(label='Captcha:', widget=CaptchaTextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': 'texto de la imagen', 'data-toggle': 'tooltip', 'title': 'Indique el texto de la imagen' })) def clean(self): """! Método que valida si el usuario a autenticar es correcto @author William Páez <*****@*****.**> """ username = self.cleaned_data['username'] password = self.cleaned_data['password'] user = authenticate(username=username, password=password) if (not user): msg = 'Verifique su usuario o contraseña' self.add_error('username', msg) class Meta: """! Meta clase del formulario que establece algunas propiedades @author William Páez <*****@*****.**> """ fields = '__all__'
class ProfileForm(forms.ModelForm, LocationForm): """! @author William Páez <*****@*****.**> @copyright <a href='https://tinyurl.com/y3tfnema'> Licencia de Software CENDITEL versión 1.2</a> """ # Username para identificar al usuario con su cédula username = IdentificationCardField(validators=[ validators.RegexValidator( r'^[VE][\d]{8}$', 'Introduzca un número de cédula válido. Solo se permiten \ números y una longitud de 8 carácteres. Se agregan ceros \ (0) si la longitud es de 7 o menos caracteres.'), ], help_text='V00000000 ó E00000000') # Nombres del usuario first_name = forms.CharField(label='Nombres:', max_length=100, widget=forms.TextInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique los Nombres', })) # Apellidos del usuario last_name = forms.CharField(label='Apellidos:', max_length=100, widget=forms.TextInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique los Apellidos', })) # Correo del usuario email = forms.EmailField( label='Correo Electrónico:', max_length=100, widget=forms.EmailInput( attrs={ 'class': 'form-control input-sm email-mask', 'data-toggle': 'tooltip', 'data-rule-required': 'true', 'title': 'Indique el correo electrónico de contacto' })) # Teléfono del usuario phone = forms.CharField( label='Teléfono:', max_length=15, widget=forms.TextInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique el número telefónico de contacto', 'data-mask': '+00-000-0000000' }), validators=[ validators.RegexValidator( r'^\+\d{2}-\d{3}-\d{7}$', 'Número telefónico inválido. Solo se permiten números \ y los símbolos: + -'), ], help_text='+58-416-0000000') # Profesión del usuario profession = forms.CharField(label='Profesión:', max_length=100, widget=forms.TextInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique la profesión', }), required=False) # Organización que pertenece el usuario organization = forms.CharField(label='Organización:', max_length=100, widget=forms.TextInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique la organización', }), required=False) # Cuenta de twitter del usuario twitter_account = forms.CharField( label='Cuenta de Twitter:', max_length=100, widget=forms.TextInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique la cuenta de twitter', }), required=False) # Cuenta de facebook del usuario facebook_account = forms.CharField( label='Cuenta de Facebook:', max_length=100, widget=forms.TextInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique la cuenta de facebook', }), required=False) # Clave de acceso del usuario password = forms.CharField( label='Contraseña:', max_length=128, widget=forms.PasswordInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique una contraseña de aceso al sistema' })) # Confirmación de clave de acceso del usuario confirm_password = forms.CharField( label='Confirmar Contraseña:', max_length=128, widget=forms.PasswordInput( attrs={ 'class': 'form-control input-sm', 'data-toggle': 'tooltip', 'title': 'Indique nuevamente la contraseña de aceso al sistema' })) # Campo de validación de captcha captcha = CaptchaField(label='Captcha:', widget=CaptchaTextInput( attrs={ 'class': 'form-control input-sm', 'placeholder': 'texto de la imagen', 'data-toggle': 'tooltip', 'title': 'Indique el texto de la imagen' })) def clean_email(self): """! Función que permite validar si el correo del usuario ya esta registrado en el sistema @author William Páez <*****@*****.**> @param self <b>{object}</b> Objeto que instancia la clase @return Mensaje de error en caso de que el correo ya esté registrado en el sistema """ email = self.cleaned_data['email'] if User.objects.filter(email=email): raise forms.ValidationError('El correo ya esta registrado') return email def clean_confirm_password(self): """! Función que permite validar si ambas contraseñas son iguales @author William Páez <*****@*****.**> @param self <b>{object}</b> Objeto que instancia la clase @return Mensaje de error en caso de que las contraseñas sean distintas """ confirm_password = self.cleaned_data['confirm_password'] password = self.cleaned_data.get('password') if password != confirm_password: raise forms.ValidationError('La contraseña no es la misma') return confirm_password class Meta: """! Meta clase del formulario que establece algunas propiedades @author William Páez <*****@*****.**> """ model = User fields = [ 'username', 'first_name', 'last_name', 'email', 'phone', 'profession', 'organization', 'twitter_account', 'facebook_account', 'password', 'confirm_password', 'captcha' ]
class CaptchaTestForm(forms.Form): # myfield = AnyOtherField() captcha = CaptchaField()
class ForgetPasswdForm(forms.Form): email = forms.CharField(required=True) captcha = CaptchaField(error_messages={'invalid': '验证码错误'})
class RegisterForm(forms.Form): captcha = CaptchaField()
class ForgetForm(forms.Form): # 此处email与前端name需保持一致。 email = forms.EmailField(required=True) # 应用验证码 自定义错误输出key必须与异常一样 captcha = CaptchaField(error_messages={"invalid": u"验证码错误"})
class ForgetPasswordForm(forms.Form): """ 忘记密码 """ email = forms.EmailField(required=True) captcha = CaptchaField(error_messages={'invalid': u'验证码错误'})
class RegisterForm(forms.Form): email = forms.EmailField(required=True) password = forms.CharField(required=True) captcha = CaptchaField(error_messages={"invalid": "The Code is wrong"})
class CaptchaMixin(forms.Form): captcha = CaptchaField(widget=CustomCaptchaTextInput)
class ForgetForm(forms.Form): email = forms.EmailField(required=True) captcha = CaptchaField(error_messages={"invalid": "The Code is wrong"})
class UserForm(forms.Form): username = forms.CharField(label='用户名', max_length=128) password = forms.CharField(label='密码', max_length=256, widget=forms.PasswordInput) captcha = CaptchaField(label='验证码')
class RegisterForm(forms.Form): username = forms.EmailField(required=True) password = forms.CharField(required=True,min_length=6) captcha = CaptchaField(error_messages={'invalid': '验证码错误!'})
class RegisterForm(forms.Form): email = forms.EmailField(required=True) password = forms.CharField(required=True) captchas = CaptchaField(error_messages={"invalid": '验证码错误'})
class RegisterForm(forms.Form): email = forms.EmailField(required=True) password = forms.CharField(required=True, min_length=6, max_length=20) captcha = CaptchaField(error_messages={'invalid': '验证码错误'})
class RegisterForm(forms.Form): email = forms.EmailField(required=True) password = forms.CharField(required=True, min_length=5) captcha = CaptchaField(error_messages={"invalid": u"验证码错误"})
class ForgetForm(forms.Form): email = forms.EmailField(required=True) captcha = CaptchaField(error_messages={'invalid': '验证码错误!'})
class CaptchaCommentForm(CommentForm): captcha = CaptchaField(label='')
class UserInforform(forms.Form): manorwoman = (('male', 'male'), ('female', 'female')) gender = forms.ChoiceField(label='sex', choices=manorwoman) check = CaptchaField(label='Check if you are a robot')