#22752: PasswordResetForm email context is missing current_app
-------------------------------+--------------------
     Reporter:  bendavis78     |      Owner:  nobody
         Type:  Uncategorized  |     Status:  new
    Component:  contrib.auth   |    Version:  master
     Severity:  Normal         |   Keywords:
 Triage Stage:  Unreviewed     |  Has patch:  0
Easy pickings:  1              |      UI/UX:  0
-------------------------------+--------------------
 I have multiple namespace instances for password reset urls. The email
 template rendered by the default PasswordResetForm does not included a
 `current_app` context. It's an easy fix, though, ass the PasswordResetForm
 already has `self.current_app`. Just need to wrap the context instance
 passed to the email template:

 {{{
 #!diff
 diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py
 index 6e07d45..baef873 100644
 --- a/django/contrib/auth/forms.py
 +++ b/django/contrib/auth/forms.py
 @@ -4,7 +4,7 @@ from collections import OrderedDict

  from django import forms
  from django.forms.utils import flatatt
 -from django.template import loader
 +from django.template import loader, Context
  from django.utils.encoding import force_bytes
  from django.utils.html import format_html, format_html_join
  from django.utils.http import urlsafe_base64_encode
 @@ -264,10 +264,13 @@ class PasswordResetForm(forms.Form):
                  'token': token_generator.make_token(user),
                  'protocol': 'https' if use_https else 'http',
              }
 -            subject = loader.render_to_string(subject_template_name, c)
 +            context_instance = Context(current_app=self.current_app)
 +            subject = loader.render_to_string(
 +                subject_template_name, c, context_instance)
              # Email subject *must not* contain newlines
              subject = ''.join(subject.splitlines())
 -            email = loader.render_to_string(email_template_name, c)
 +            email = loader.render_to_string(
 +                email_template_name, c, context_instance)

              if html_email_template_name:
                  html_email =
 loader.render_to_string(html_email_template_name, c)
 ~
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/22752>
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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/053.e9b491401308056935aff3766eab00cc%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to