Guest User

Untitled

a guest
Jan 21st, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. class UserProfileAdminForm(forms.ModelForm):
  2. first_name = forms.Field()
  3. last_name = forms.Field()
  4. email = forms.Field()
  5. password1 = forms.Field()
  6. password2 = forms.Field()
  7.  
  8. class Meta:
  9. model = UserProfile
  10. exclude = ('user',)
  11.  
  12. def clean_email(self):
  13. print "Inside clean clean_email ...."
  14. if self.user:
  15. if User.objects.filter(~Q(id=self.user.id), email=self.cleaned_data['email']).count() > 0:
  16. raise forms.ValidationError('Email Address already registered')
  17. else:
  18. if User.objects.filter(email=self.cleaned_data['email']).count() > 0:
  19. raise forms.ValidationError('Email Address already registered')
  20. return self.cleaned_data['email']
  21.  
  22. def generate_username(self, first_name):
  23. username = first_name[:20] + str(random.randint(0,1000000)) + 'A'
  24. try:
  25. User.objects.get(username=username)
  26. return generate_username(first_name)
  27. except User.DoesNotExist:
  28. return username
  29.  
  30. def clean_password2(self):
  31. print "Inside clean clean_password2 ...."
  32. password1 = self.cleaned_data['password1']
  33. password2 = self.cleaned_data['password2']
  34.  
  35. if password1 != password2:
  36. raise forms.ValidationError('Passwords must be the same.')
  37. return self.cleaned_data['password1']
  38.  
  39. def __init__(self, *args, **kwargs):
  40. super(UserProfileAdminForm, self).__init__(*args, **kwargs)
  41. # Here we will redefine our test field.
  42. if self.instance.pk is None:
  43. self.user = None
  44. self.usr_profile = None
  45. else:
  46. self.user_profile = self.instance
  47. self.user = self.user_profile.user
  48.  
  49.  
  50. self.fields['first_name'] = forms.CharField(label='First Name', required=True, max_length=30)
  51. self.fields['last_name'] = forms.CharField(label='Last Name', required=True, max_length=30)
  52. self.fields['email'] = forms.EmailField(label='Email', required=True)
  53.  
  54. if self.user:
  55. self.fields['password1'] = forms.CharField(label="Password", widget=forms.PasswordInput(), required=False, max_length=30)
  56. self.fields['password2'] = forms.CharField(label="Password confirmation", widget=forms.PasswordInput(), required=False, max_length=30)
  57. self.fields['first_name'].initial = self.user.first_name
  58. self.fields['last_name'].initial = self.user.last_name
  59. self.fields['email'].initial = self.user.email
  60. else:
  61. self.fields['password1'] = forms.CharField(label="Password", widget=forms.PasswordInput(), required=True, max_length=30)
  62. self.fields['password2'] = forms.CharField(label="Password confirmation", widget=forms.PasswordInput(), required=True, max_length=30)
  63.  
  64. def save(self, commit=True):
  65. frm = super(UserProfileAdminForm, self).save(commit=False)
  66.  
  67. first_name = self.cleaned_data['first_name']
  68. last_name = self.cleaned_data['last_name']
  69. email = self.cleaned_data['email']
  70. password2 = self.cleaned_data['password2']
  71.  
  72. if self.user is None:
  73. self.user = User()
  74. self.user.username = self.generate_username(first_name)
  75. self.user.save()
  76. frm.user = self.user
  77.  
  78. self.user.first_name = first_name
  79. self.user.last_name = last_name
  80. self.user.email = email
  81. if password2:
  82. self.user.set_password(password2)
  83.  
  84. self.user.save()
  85. if commit:
  86. frm.save()
  87.  
  88. return frm
Add Comment
Please, Sign In to add comment