Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BasicRegister(forms.Form):
- def __init__(self, *args, **kwargs):
- super(BasicRegister, self).__init__(*args, **kwargs)
- self.type = None
- username = forms.CharField(label=u'Username', max_length=30)
- email = forms.EmailField(label=u'Email')
- password1 = forms.CharField(
- label=u'Password',
- widget=forms.PasswordInput()
- )
- password2 = forms.CharField(
- label=u'Confirm Password',
- widget=forms.PasswordInput()
- )
- def clean_password2(self):
- if 'password1' in self.cleaned_data:
- password1 = self.cleaned_data['password1']
- password2 = self.cleaned_data['password2']
- if password1 == password2:
- return password2
- raise forms.ValidationError('Passwords do not match')
- def clean_username(self):
- username = self.cleaned_data['username']
- if not re.search(r'^\w+$', username):
- raise forms.ValidationError('Username must be alphanumeric')
- try:
- User.objects.get(username=username)
- except User.DoesNotExist:
- return username
- raise forms.ValidationError('Username is already taken')
- def save(self, *args, **kwargs):
- u = User.objects.create_user(
- username = self.cleaned_data['username'],
- password = self.cleaned_data['password1'],
- email = self.cleaned_data['email']
- )
- if self.type is not None:
- if self.type == 'broker':
- broker = Broker(
- phone = self.cleaned_data['phone'],
- company_name = self.cleaned_data['company_name'],
- address1 = self.cleaned_data['address1'],
- address2 = self.cleaned_data['address2'],
- city = self.cleaned_data['city']
- )
- broker.save()
- obj=broker
- elif self.type == 'agent':
- content_obj = Agent(**self.cleaned_data)
- profile = MyUser(user=u, content_object=obj)
- profile.save()
- class BrokerForm(BasicRegister):
- def __init__(self, *args, **kwargs):
- super(BrokerForm, self).__init__(*args, **kwargs)
- self.type = 'broker'
- phone = forms.CharField()
- company_name = forms.CharField()
- address1 = forms.CharField()
- address2 = forms.CharField()
- city = forms.ModelChoiceField(queryset=City.objects, label='City')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement