File size: 1,209 Bytes
6924b02
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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()