You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.3 KiB
45 lines
1.3 KiB
from django import forms
|
|
from django.contrib.auth.forms import UserCreationForm
|
|
from .models import BaseUser
|
|
|
|
class BaseUserForm(UserCreationForm):
|
|
class Meta:
|
|
model = BaseUser
|
|
fields = [
|
|
'first_name',
|
|
'last_name',
|
|
'bio',
|
|
'address',
|
|
'contact_number',
|
|
'image',
|
|
'citizenship',
|
|
'certificate',
|
|
'price',
|
|
'role',
|
|
'email',
|
|
]
|
|
password1 = forms.CharField(
|
|
widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password'}),
|
|
label='Password',
|
|
min_length=8,
|
|
)
|
|
password2 = forms.CharField(
|
|
widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Confirm Password'}),
|
|
label='Confirm Password',
|
|
min_length=8,
|
|
)
|
|
|
|
def clean_password2(self):
|
|
password1 = self.cleaned_data.get('password1')
|
|
password2 = self.cleaned_data.get('password2')
|
|
|
|
if password1 and password2 and password1 != password2:
|
|
raise forms.ValidationError("Passwords don't match.")
|
|
return password2
|
|
|
|
def save(self, commit=True):
|
|
user = super().save(commit=False)
|
|
user.set_password(self.cleaned_data['password1'])
|
|
if commit:
|
|
user.save()
|
|
return user
|
|
|