User = get_user_model()
class EmployeeForm(forms.ModelForm):
class Meta:
model = Employee
fields = ('fullname','mobile','emp_code','position', 'Department','email', 'password_first', 'password_again')
labels = {
'fullname':'Full Name',
'emp_code':'Employee Code',
'password_first': 'Password',
'password_again': 'Confirm Password',
}
widgets = {
'password_first': forms.PasswordInput(),
'password_again' : forms.PasswordInput(),
}
def __init__(self, *args, **kwargs):
super(EmployeeForm,self).__init__(*args, **kwargs)
self.fields['position'].empty_label = "Select"
self.fields['Department'].empty_label = "Select"
def clean_username(self):
username = self.cleaned_data.get('emp_code')
qs = User.objects.filter(username=username)
if qs.exists():
raise forms.ValidationError('username already exists')
return username
def clean(self):
cleaned_data = self.cleaned_data
password_first = self.cleaned_data.get('password_first')
password_again = self.cleaned_data.get('password_again')
if password_first and password_again and password_first != password_again:
raise forms.ValidationError("Passwords din't match")
return cleaned_data
def clean_email(self):
email_address = self.cleaned_data.get('email')
qs = User.objects.filter(email=email_address)
if qs.exists():
raise forms.ValidationError("This email_id already registered")
return email_address