Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class UserProfileAdminForm(forms.ModelForm):
- first_name = forms.Field()
- last_name = forms.Field()
- email = forms.Field()
- password1 = forms.Field()
- password2 = forms.Field()
- class Meta:
- model = UserProfile
- exclude = ('user',)
- def clean_email(self):
- print "Inside clean clean_email ...."
- if self.user:
- if User.objects.filter(~Q(id=self.user.id), email=self.cleaned_data['email']).count() > 0:
- raise forms.ValidationError('Email Address already registered')
- else:
- if User.objects.filter(email=self.cleaned_data['email']).count() > 0:
- raise forms.ValidationError('Email Address already registered')
- return self.cleaned_data['email']
- def generate_username(self, first_name):
- username = first_name[:20] + str(random.randint(0,1000000)) + 'A'
- try:
- User.objects.get(username=username)
- return generate_username(first_name)
- except User.DoesNotExist:
- return username
- def clean_password2(self):
- print "Inside clean clean_password2 ...."
- password1 = self.cleaned_data['password1']
- password2 = self.cleaned_data['password2']
- if password1 != password2:
- raise forms.ValidationError('Passwords must be the same.')
- return self.cleaned_data['password1']
- def __init__(self, *args, **kwargs):
- super(UserProfileAdminForm, self).__init__(*args, **kwargs)
- # Here we will redefine our test field.
- if self.instance.pk is None:
- self.user = None
- self.usr_profile = None
- else:
- self.user_profile = self.instance
- self.user = self.user_profile.user
- self.fields['first_name'] = forms.CharField(label='First Name', required=True, max_length=30)
- self.fields['last_name'] = forms.CharField(label='Last Name', required=True, max_length=30)
- self.fields['email'] = forms.EmailField(label='Email', required=True)
- if self.user:
- self.fields['password1'] = forms.CharField(label="Password", widget=forms.PasswordInput(), required=False, max_length=30)
- self.fields['password2'] = forms.CharField(label="Password confirmation", widget=forms.PasswordInput(), required=False, max_length=30)
- self.fields['first_name'].initial = self.user.first_name
- self.fields['last_name'].initial = self.user.last_name
- self.fields['email'].initial = self.user.email
- else:
- self.fields['password1'] = forms.CharField(label="Password", widget=forms.PasswordInput(), required=True, max_length=30)
- self.fields['password2'] = forms.CharField(label="Password confirmation", widget=forms.PasswordInput(), required=True, max_length=30)
- def save(self, commit=True):
- frm = super(UserProfileAdminForm, self).save(commit=False)
- first_name = self.cleaned_data['first_name']
- last_name = self.cleaned_data['last_name']
- email = self.cleaned_data['email']
- password2 = self.cleaned_data['password2']
- if self.user is None:
- self.user = User()
- self.user.username = self.generate_username(first_name)
- self.user.save()
- frm.user = self.user
- self.user.first_name = first_name
- self.user.last_name = last_name
- self.user.email = email
- if password2:
- self.user.set_password(password2)
- self.user.save()
- if commit:
- frm.save()
- return frm
Add Comment
Please, Sign In to add comment