56 lines
No EOL
1.7 KiB
Python
56 lines
No EOL
1.7 KiB
Python
from django import forms
|
|
from django.contrib.auth.models import User
|
|
from .models import Profile
|
|
|
|
class UserRegistrationForm(forms.Form):
|
|
username = forms.CharField(
|
|
label='Username',
|
|
max_length=150,
|
|
widget=forms.TextInput(attrs={'class': 'form-group'})
|
|
)
|
|
email = forms.EmailField(
|
|
label='Email',
|
|
widget=forms.EmailInput(attrs={'class': 'form-group'})
|
|
)
|
|
password1 = forms.CharField(
|
|
label='Password',
|
|
widget=forms.PasswordInput(attrs={'class': 'form-group'})
|
|
)
|
|
password2 = forms.CharField(
|
|
label='Confirm Password',
|
|
widget=forms.PasswordInput(attrs={'class': 'form-group'})
|
|
)
|
|
|
|
def clean(self):
|
|
cleaned_data = super().clean()
|
|
password1 = cleaned_data.get("password1")
|
|
password2 = cleaned_data.get("password2")
|
|
|
|
if password1 and password2 and password1 != password2:
|
|
raise forms.ValidationError("Passwords do not match")
|
|
|
|
class UserLoginForm(forms.Form):
|
|
username = forms.CharField(
|
|
label='Username',
|
|
max_length=150,
|
|
widget=forms.TextInput(attrs={'class': 'form-group'})
|
|
)
|
|
password = forms.CharField(
|
|
label='Password',
|
|
widget=forms.PasswordInput(attrs={'class': 'form-group'})
|
|
)
|
|
|
|
class UserUpdateForm(forms.ModelForm):
|
|
class Meta:
|
|
model = User
|
|
fields = ['username', 'email']
|
|
|
|
class ProfileUpdateForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Profile
|
|
fields = ['avatar', 'biography']
|
|
|
|
class CompleteProfileForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Profile
|
|
fields = ['avatar', 'first_name', 'last_name', 'birth_date', 'biography'] |