Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class UserProfileCreationForm(UserCreationForm):
- username = forms.CharField(label="Username", max_length=40, min_length=5)
- email = forms.EmailField(label="Email address", max_length=40)
- first_name = forms.CharField(label='First name', max_length=40, required=False)
- last_name = forms.CharField(label='Last name', max_length=40, required=False)
- password1 = forms.CharField(label="Password", widget=forms.PasswordInput, min_length=5)
- password2 = forms.CharField(label="Password confirmation", widget=forms.PasswordInput)
- class Meta():
- model = UserProfile
- fields = (
- 'username', 'email', 'type_of_user', 'first_name', 'last_name', 'password1', 'password2','IBAN',
- )
- def clean_password1(self):
- password = self.cleaned_data.get('password1')
- if len(password) < 8:
- raise ValidationError('Password has to be of size at least 8 characters')
- return super(UserProfileCreationForm, self).clean_password1()
- def clean_password2(self):
- password1 = self.cleaned_data.get("password1")
- password2 = self.cleaned_data.get("password2")
- if password1 and password2 and password1 != password2:
- raise forms.ValidationError("Password mismatch")
- return password2
- def save(self, commit=True):
- try:
- with transaction.atomic():
- user = User(username=self.cleaned_data['username'],
- first_name=self.cleaned_data['first_name'],
- last_name=self.cleaned_data['last_name'],
- email=self.cleaned_data['email'])
- user.save()
- user.set_password(self.cleaned_data["password1"])
- user_profile = UserProfile(user=user,
- IBAN=self.cleaned_data['IBAN'],
- type_of_user=self.cleaned_data['type_of_user']
- )
- user_profile.save()
- except:
- raise #TODO: HANDLE THE EXCEPTION
- return user
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement