from django import forms from django.contrib.auth import get_user_model from django.contrib.auth.forms import ReadOnlyPasswordHashField User=get_user_model() class UserAdminCreationForm(forms.ModelForm): class Meta: model = User fields = ('username','email') password = forms.CharField(widget=forms.PasswordInput) confirm_password = forms.CharField(label="Confirm Password",widget=forms.PasswordInput) def clean(self): cleaned_data = super().clean() password = cleaned_data.get('password') confirm_password = cleaned_data.get('confirm_password') if password is not None and password != confirm_password: self.add_error('confirm_password',"Your password must match") return cleaned_data def save(self,commit=True): user = super().save(commit=False) user.set_password(self.cleaned_data['password']) if commit: user.save() return user class UserAdminUpdateForm(forms.ModelForm): class Meta: model = User fields = ('email','username','password') password = ReadOnlyPasswordHashField()