class ContactForm(forms.Form): name = forms.CharField(max_length=50) email = forms.EmailField(max_length=50) phone = phone_forms.PhoneNumberField( max_length=15, widget=PhoneNumberInternationalFallbackWidget, required=False) company = forms.CharField(max_length=50, required=False) message = forms.CharField(max_length=5000, widget=forms.Textarea, required=False) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.layout = Layout( Div('name', 'email', 'phone', 'company', css_class="col-md-offset-2 col-md-4"), Div('message', Submit('submit', 'Submit'), css_class="col-md-4")) # self.helper.add_input(Submit('submit', 'Submit')) self.fields['phone'].widget.attrs.update({ 'pattern': '^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$' })
def test_invalid_region(self): with self.assertRaises(ValueError) as cm: formfields.PhoneNumberField(region="invalid") self.assertTrue( force_text(cm.exception).startswith( "“invalid” is not a valid region code."))
class ProfileForm(forms.Form): avatar = forms.ImageField(required=False) email = forms.EmailField() country = forms.CharField(min_length=3, max_length=30) city = forms.CharField(min_length=3, max_length=30) postal_code = forms.CharField(min_length=3, max_length=15) address = forms.CharField(min_length=5, max_length=1000) phone = phonefield.PhoneNumberField()
class AgencyForm(forms.Form): name = forms.CharField(min_length=3, max_length=60) address = forms.CharField(min_length=5, max_length=1000) city = forms.CharField(max_length=30) country = forms.CharField(max_length=30) postal_code = forms.CharField(min_length=3, max_length=15) phone = phonefield.PhoneNumberField() manager = forms.ChoiceField( choices=User.objects.filter(is_active=True, groups__name='managers'))
class SignUpForm(forms.Form): name = forms.CharField(min_length=3, max_length=30) last_name = forms.CharField(min_length=2, max_length=30) email = forms.EmailField() password = forms.CharField(min_length=5, max_length=15) country = forms.CharField(min_length=3, max_length=30) city = forms.CharField(min_length=3, max_length=30) postal_code = forms.CharField(min_length=3, max_length=15) address = forms.CharField(min_length=5, max_length=1000) phone = phonefield.PhoneNumberField()
class UserSearchForm(forms.Form): IS_ACTIVE_CHOICES = ( (enums.IsActiveSearchEnum.ALL.value, 'All statuses'), (enums.IsActiveSearchEnum.ACTIVE.value, 'Active'), (enums.IsActiveSearchEnum.INACTIVE.value, 'Inactive'), ) name = forms.CharField(max_length=256, required=False) job = forms.CharField(max_length=256, required=False) email = forms.EmailField(required=False) phone = formfields.PhoneNumberField(required=False) department = forms.ModelChoiceField( queryset=departments_models.Departments.objects.all(), empty_label='All departments', required=False) is_active = forms.ChoiceField( choices=IS_ACTIVE_CHOICES, initial=enums.IsActiveSearchEnum.ACTIVE.value)
class OrderForm(forms.ModelForm): email = forms.EmailField( widget=forms.TextInput, error_messages={'invalid': 'Введите e-mail в верном виде'}, label="E-mail", ) phone_number = formfields.PhoneNumberField( widget=PhoneNumberPrefixWidget, error_messages={'invalid': 'Введите номер телефона в правильном формате'}, label='Номер телефона', ) class Meta: model = Order fields = [ 'first_name', 'last_name', 'email', 'phone_number', 'address', 'product', 'comment', ]
class RegisterForm(Form): forename = forms.CharField(max_length=128) surname = forms.CharField(max_length=128) email = forms.EmailField(max_length=256) phone = formfields.PhoneNumberField(max_length=15) photo = RestrictedFileField(max_size=RestrictedFileField.MB * 5, content_types=RestrictedFileField.JPEG) username = forms.CharField(min_length=2, validators=[_ALPHANUMERIC]) password = forms.CharField(min_length=8) def __init__(self, request, *args, **kwargs): self.request = request super(RegisterForm, self).__init__(*args, **kwargs) def register(self): phone = str(self.cleaned_data['phone']) area_code = phone[3:7] subscriber_number = phone[7:] photo = self.cleaned_data['photo'] result = api.post( self.request, '/register', { 'username': self.cleaned_data['username'], 'countryId': 1, 'forename': self.cleaned_data['forename'], 'surname': self.cleaned_data['surname'], 'email': self.cleaned_data['email'], 'areaCode': area_code, 'subscriberNumber': subscriber_number, 'password': self.cleaned_data['password'] }, files={'photo': (photo.name, photo.file, photo.content_type)}) token = result['token']['token'] logger.debug('Received login token: %s', token) self.request.session['login_token'] = token
class UserChangeForm(BaseUserChangeForm): mobile_phone = formfields.PhoneNumberField( widget=widgets.PhoneNumberInternationalFallbackWidget) class Meta(BaseUserChangeForm.Meta): model = User
class PhoneNumberForm(forms.Form): number = formfields.PhoneNumberField(region="CA")
class PhoneNumberForm(forms.Form): canadian_number = formfields.PhoneNumberField(region="CA") french_number = formfields.PhoneNumberField(region="FR")
class PhoneNumberForm(forms.Form): number = formfields.PhoneNumberField( error_messages={"invalid": "MY INLINE INVALID MESSAGE!"})
class PhoneNumberForm(forms.Form): number = formfields.PhoneNumberField()
class CheckoutContactForm(forms.Form): client_name = forms.CharField(required=True) client_phone = formfields.PhoneNumberField(required=True)
class SignUpForm(UserCreationForm): phone = formfields.PhoneNumberField(widget=widgets.PhoneNumberPrefixWidget(), initial='+91') class Meta: model = Account fields = ('email', 'first_name', 'last_name', 'phone') # Fields while signing up through the website