Sichanov

form

Dec 16th, 2022
753
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.64 KB | None | 0 0
  1. class SignUpForm(auth_forms.UserCreationForm):
  2.     first_name = forms.CharField(validators=[
  3.         validate_alphabet_characters_english,
  4.         MinLengthValidator(2),
  5.     ])
  6.     last_name = forms.CharField(validators=[
  7.         validate_alphabet_characters_english,
  8.         MinLengthValidator(2),
  9.     ])
  10.     age = forms.IntegerField(validators=[
  11.         age_validator,
  12.     ])
  13.     gender = forms.ChoiceField(
  14.         choices=Gender.choices
  15.     )
  16.  
  17.     class Meta:
  18.         model = UserModel
  19.         fields = (UserModel.USERNAME_FIELD, 'password1', 'password2', 'first_name', 'last_name', 'age', 'gender',)
  20.  
  21.     def __init__(self, *args, **kwargs):
  22.         super().__init__(*args, **kwargs)
  23.         self.fields['email'].widget.attrs['placeholder'] = 'Email'
  24.         self.fields['password1'].widget.attrs['placeholder'] = 'Password'
  25.         self.fields['password2'].widget.attrs['placeholder'] = 'Confirm Password'
  26.         self.fields['first_name'].widget.attrs['placeholder'] = 'First Name'
  27.         self.fields['last_name'].widget.attrs['placeholder'] = 'Last Name'
  28.         self.fields['age'].widget.attrs['placeholder'] = 'Age'
  29.         self.fields['gender'].widget.attrs['placeholder'] = 'Gender'
  30.  
  31.     # save with data for profile
  32.     def save(self, commit=True):
  33.         user = super().save(commit=commit)
  34.  
  35.         profile = Profile(
  36.             first_name=self.cleaned_data['first_name'],
  37.             last_name=self.cleaned_data['last_name'],
  38.             age=self.cleaned_data['age'],
  39.             gender=self.cleaned_data['gender'],
  40.             user=user,
  41.         )
  42.         if commit:
  43.             profile.save()
  44.  
  45.         return user
Advertisement
Add Comment
Please, Sign In to add comment