1313from django .shortcuts import redirect
1414
1515from ..exceptions import ImmediateHttpResponse
16- from ..utils import get_user_model
16+ from ..utils import get_user_model , get_form_class
1717
1818from .utils import (get_next_redirect_url , complete_signup ,
1919 get_login_redirect_url , perform_login ,
@@ -89,6 +89,9 @@ class LoginView(RedirectAuthenticatedUserMixin,
8989 success_url = None
9090 redirect_field_name = "next"
9191
92+ def get_form_class (self ):
93+ return get_form_class (app_settings .FORMS , 'login' , self .form_class )
94+
9295 def form_valid (self , form ):
9396 success_url = self .get_success_url ()
9497 return form .login (self .request , redirect_url = success_url )
@@ -150,6 +153,9 @@ class SignupView(RedirectAuthenticatedUserMixin, CloseableSignupMixin,
150153 redirect_field_name = "next"
151154 success_url = None
152155
156+ def get_form_class (self ):
157+ return get_form_class (app_settings .FORMS , 'signup' , self .form_class )
158+
153159 def get_success_url (self ):
154160 # Explicitly passed ?next= URL takes precedence
155161 ret = (get_next_redirect_url (self .request ,
@@ -281,6 +287,9 @@ class EmailView(FormView):
281287 form_class = AddEmailForm
282288 success_url = reverse_lazy ('account_email' )
283289
290+ def get_form_class (self ):
291+ return get_form_class (app_settings .FORMS , 'add_email' , self .form_class )
292+
284293 def dispatch (self , request , * args , ** kwargs ):
285294 sync_user_email_addresses (request .user )
286295 return super (EmailView , self ).dispatch (request , * args , ** kwargs )
@@ -420,6 +429,11 @@ class PasswordChangeView(FormView):
420429 form_class = ChangePasswordForm
421430 success_url = reverse_lazy ("account_change_password" )
422431
432+ def get_form_class (self ):
433+ return get_form_class (app_settings .FORMS ,
434+ 'change_password' ,
435+ self .form_class )
436+
423437 def dispatch (self , request , * args , ** kwargs ):
424438 if not request .user .has_usable_password ():
425439 return HttpResponseRedirect (reverse ('account_set_password' ))
@@ -456,6 +470,11 @@ class PasswordSetView(FormView):
456470 form_class = SetPasswordForm
457471 success_url = reverse_lazy ("account_set_password" )
458472
473+ def get_form_class (self ):
474+ return get_form_class (app_settings .FORMS ,
475+ 'set_password' ,
476+ self .form_class )
477+
459478 def dispatch (self , request , * args , ** kwargs ):
460479 if request .user .has_usable_password ():
461480 return HttpResponseRedirect (reverse ('account_change_password' ))
@@ -490,6 +509,11 @@ class PasswordResetView(FormView):
490509 form_class = ResetPasswordForm
491510 success_url = reverse_lazy ("account_reset_password_done" )
492511
512+ def get_form_class (self ):
513+ return get_form_class (app_settings .FORMS ,
514+ 'reset_password' ,
515+ self .form_class )
516+
493517 def form_valid (self , form ):
494518 form .save ()
495519 return super (PasswordResetView , self ).form_valid (form )
@@ -516,6 +540,11 @@ class PasswordResetFromKeyView(FormView):
516540 token_generator = default_token_generator
517541 success_url = reverse_lazy ("account_reset_password_from_key_done" )
518542
543+ def get_form_class (self ):
544+ return get_form_class (app_settings .FORMS ,
545+ 'reset_password_from_key' ,
546+ self .form_class )
547+
519548 def _get_user (self , uidb36 ):
520549 # pull out user
521550 try :
0 commit comments