Kieran
Kieran

Reputation: 4015

Overriding Django's reset password email templates

In my Django app, I would like to customise the email sent to users when they request a password reset. I have these templates saved in my project's templates directory.

In my URL Patterns, I have...

urlpatterns = [

...

    url('^password_reset/$', auth_views.password_reset,
        {
            'template_name': 'accounts/reset_password.html',
            'email_template_name': 'email/password_reset/password_reset.txt',
            'html_email_template_name': 'email/password_reset/password_reset.html',
            'subject_template_name': 'email/password_reset/password_reset_subject.txt'
        },
        name='password_reset'),

...

]

However, Django still sends emails using the default password reset templates. Am I missing something obvious here? Thanks.

Upvotes: 3

Views: 7215

Answers (2)

markwalker_
markwalker_

Reputation: 12869

It should be as simple as that (docs).

url('^password_reset/$', auth_views.password_reset,
    {
        'template_name': 'accounts/reset_password.html',
        'email_template_name': 'email/password_reset/password_reset.txt',
        'html_email_template_name': 'email/password_reset/password_reset.html',
        'subject_template_name': 'email/password_reset/password_reset_subject.txt'
    },
    name='password_reset'),

Upvotes: 1

Kieran
Kieran

Reputation: 4015

As it turns out, I had accidentally defined auth_views.password_reset twice in my URLs. Removing the duplicate fixed the problem.

Upvotes: 2

Related Questions