﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
34003	PasswordResetView, PasswordResetDoneView, PasswordResetConfirmView, & PasswordResetCompleteView  not discovering custom template	Brylie Christopher Oxley	nobody	"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(
    ""password_reset/done/"",
    auth_views.PasswordResetDoneView.as_view(
        template_name=""accounts/password_reset_done.html"",
    ),
    name=""password_reset_done"",
),
path(
    ""reset/<uidb64>/<token>/"",
    auth_views.PasswordResetConfirmView.as_view(),
    name=""password_reset_confirm"",
),
path(
    ""reset/done/"",
    auth_views.PasswordResetCompleteView.as_view(),
    name=""password_reset_complete"",
),
}}}

The [https://docs.djangoproject.com/en/4.1/topics/auth/default/#django.contrib.auth.views.PasswordResetView PasswordResetView], [https://docs.djangoproject.com/en/4.1/topics/auth/default/#django.contrib.auth.views.PasswordResetView PasswordResetDoneView], [https://docs.djangoproject.com/en/4.1/topics/auth/default/#django.contrib.auth.views.PasswordResetView PasswordResetConfirmView] and [https://docs.djangoproject.com/en/4.1/topics/auth/default/#django.contrib.auth.views.PasswordResetCompleteView PasswordResetCompleteView] docs say Django will look for templates called ''registration/*'' and render those if available.

When I define templates with the documented name and location, the custom templates are not discovered by Django. 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 problematic views are all part of 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(
    ""password_reset/done/"",
    auth_views.PasswordResetDoneView.as_view(),
    name=""password_reset_done"",
),
path(
    ""reset/<uidb64>/<token>/"",
    auth_views.PasswordResetConfirmView.as_view(
        template_name=""accounts/password_reset_confirm.html"",
    ),
    name=""password_reset_confirm"",
),
path(
    ""reset/done/"",
    auth_views.PasswordResetCompleteView.as_view(
        template_name=""accounts/password_reset_complete.html"",
    ),
    name=""password_reset_complete"",
),
}}}

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."	Uncategorized	new	contrib.auth	4.1	Normal				Unreviewed	0	0	0	0	0	0
