77from django .http import HttpResponseRedirect
88from django .views .generic import CreateView , ListView , UpdateView
99
10- from profiles .forms import UserForm
10+ from profiles .forms import UserCreateForm , UserForm
1111from profiles .models import Profile
1212
1313PROTECTED_VIEW_PERMISSION = 'auth.change_user'
@@ -89,7 +89,7 @@ def get_context_data(self, **kwargs):
8989
9090
9191class UserCreateView (LoginRequiredMixin , PermissionRequiredMixin , CreateView ):
92- form_class = UserForm
92+ form_class = UserCreateForm
9393 model = User
9494 page_title = 'Create User'
9595 permission_required = PROTECTED_VIEW_PERMISSION
@@ -98,8 +98,9 @@ class UserCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
9898 def form_valid (self , form ):
9999 user = form .save ()
100100 cleaned_data = form .cleaned_data
101+ user .set_password (cleaned_data .get ('password' ))
101102
102- if user .is_superuser :
103+ if not user .is_superuser :
103104 update_permissions (user , cleaned_data )
104105
105106 return HttpResponseRedirect (reverse ('users:users_list' ))
@@ -121,7 +122,10 @@ def form_valid(self, form):
121122 user = form .save ()
122123 cleaned_data = form .cleaned_data
123124
124- if user .is_superuser :
125+ if cleaned_data .get ('password' ):
126+ user .set_password (cleaned_data .get ('password' ))
127+
128+ if not user .is_superuser :
125129 update_permissions (user , cleaned_data )
126130
127131 return HttpResponseRedirect (reverse ('users:users_list' ))
0 commit comments