[кросс -posted from Does Django password_reset support html email templates?]
После некоторого количества проб и ошибок я обнаружил гораздо более простой способ предоставить заказную templ который был отправлен в последнюю версию Django (1.8).
В вашем project/urls.py
, добавьте эти импорт:
from django.contrib.auth import views as auth_views
from django.core.urlresolvers import reverse_lazy
И добавьте следующий маршрут в ваших urlpatterns раньше обычного Джанго CONTRIB URL аутентификации маршрут включения:
url(r'^accounts/password/reset/$',
auth_views.password_reset,
{
'post_reset_redirect': reverse_lazy('auth_password_reset_done'),
'html_email_template_name': 'registration/password_reset_html_email.html'
},
name='auth_password_reset'),
url('^', include('django.contrib.auth.urls')),
А потом, в ваших приложения templates/registration
, создайте password_reset_html_email.html
с любым HTML-шаблоном, который вы хотите.
Причина этого, казалось, необходимое лежало в источнике для django/contrib/auth/views.py
, который имеет функцию просмотра исходного маршрута URL отображается:
147 def password_reset(request, is_admin_site=False,
148 template_name='registration/password_reset_form.html',
149 email_template_name='registration/password_reset_email.html',
150 subject_template_name='registration/password_reset_subject.txt',
151 password_reset_form=PasswordResetForm,
152 token_generator=default_token_generator,
153 post_reset_redirect=None,
154 from_email=None,
155 current_app=None,
156 extra_context=None,
157 html_email_template_name=None):
158
html_email_template_name
установлен в None
как по умолчанию, и не сделал по-видимому, способ присвоить его значение, кроме того, что я перечислил этот конкретный маршрут для этого случая, как я упоминал выше.
Надеюсь, это поможет без необходимости скопировать вставку кучу почти идентичного кода, например, некоторые из других предложенных ответов - обратная связь приветствуется, конечно!
Да. Я попробовал это. Но когда вы помещаете HTML в этот файл, код HTML отображается в теле письма. –
См. Ответ Burhan Halid ниже - вам нужно переопределить функцию для поддержки отправки multipart/html – johnbarr