#34003: PasswordResetView and PasswordResetConfirmView not discovering custom
template
-------------------------------------+-------------------------------------
               Reporter:  Brylie     |          Owner:  nobody
  Christopher Oxley                  |
                   Type:             |         Status:  new
  Uncategorized                      |
              Component:             |        Version:  4.1
  contrib.auth                       |
               Severity:  Normal     |       Keywords:
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 While defining URLs for a user password reset flow, I am using standard
 Django views such as PasswordResetView.

 {{{#!python
 path(
     "password_reset/",
     django.contrib.auth.views.PasswordResetView.as_view(),
     name="password_reset",
 ),
 path(
     "reset/<uidb64>/<token>/",
     auth_views.PasswordResetConfirmView.as_view(),
     name="password_reset_confirm",
 ),
 }}}

 The
 
[https://docs.djangoproject.com/en/4.1/topics/auth/default/#django.contrib.auth.views.PasswordResetView
 PasswordResetView] and
 
[https://docs.djangoproject.com/en/4.1/topics/auth/default/#django.contrib.auth.views.PasswordResetView
 PasswordResetConfirmView] docs say it will look for a template called
 ''registration/password_reset_form.html'' and
 "registration/password_reset_confirm.html" respectively and render that if
 available. When I define a template with the same name and location, the
 custom template is not discovered by the PasswordResetView nor
 PasswordResetConfirmView. Instead, the default Django Admin templates are
 rendered. This is despite other built in views like LoginView being able
 to fine conventionally named templates in the ''same'' directory.

 Of note, the two problematic views are both responsible for rendering and
 validating forms during the password reset flow.

 In order to work around the issue, I have had to move the custom template
 to a different template path specified via the template_name argument to
 the PasswordResetView:

 {{{#!python
 path(
     "password_reset/",
     django.contrib.auth.views.PasswordResetView.as_view(
         template_name="accounts/password_reset_form.html",
     ),
     name="password_reset",
 ),
 path(
     "reset/<uidb64>/<token>/",
     auth_views.PasswordResetConfirmView.as_view(
         template_name="accounts/password_reset_confirm.html",
     ),
     name="password_reset_confirm",
 ),
 }}}

 In honesty, it is very possible that I have made a typo in the file name,
 but I have tried multiple times with the same result.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/34003>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/01070183282d0a1b-f8c5871c-1f7f-4864-b0e9-1e5091123cfd-000000%40eu-central-1.amazonses.com.

Reply via email to