37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from django import forms
|
|
from django.contrib.auth.models import User
|
|
from .models import UserProfile
|
|
|
|
class SignUpForm(forms.ModelForm):
|
|
password = forms.CharField(widget=forms.PasswordInput())
|
|
|
|
class Meta:
|
|
model = UserProfile
|
|
fields = ['email', 'password', 'phone_number', 'country', 'state', 'postal_code', 'full_address','company_name']
|
|
|
|
def clean_email(self):
|
|
email = self.cleaned_data['email']
|
|
if User.objects.filter(email=email).exists():
|
|
raise forms.ValidationError("This email is already registered.")
|
|
return email
|
|
|
|
def save(self, commit=True):
|
|
user_profile = super(SignUpForm, self).save(commit=False)
|
|
user = User.objects.create_user(username=self.cleaned_data['email'],
|
|
email=self.cleaned_data['email'],
|
|
password=self.cleaned_data['password'])
|
|
user_profile.user = user
|
|
if commit:
|
|
user.save()
|
|
user_profile.save()
|
|
return user_profile
|
|
|
|
class UserLoginForm(forms.Form):
|
|
email = forms.EmailField(label="Email")
|
|
password = forms.CharField(label="Password", widget=forms.PasswordInput)
|
|
|
|
|
|
|
|
class UserForm(forms.Form):
|
|
email = forms.EmailField(label="Email")
|
|
|