2015-07-27 2 views
0

В моем приложении Django я хотел бы настроить электронную почту, отправленную пользователям, когда они запросят сброс пароля. У меня эти шаблоны сохранены в моем проектеtemplates.Переопределение пароля для сброса пароля Django

  • /templates/email/password_reset/password_reset.html для HTML электронной почты
  • /templates/email/password_reset/password_reset.txt для обычной электронной почты
  • /templates/email/password_reset/password_reset_subject.txt для субъекта

В моих шаблонов URL, у меня есть ...

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'), 

... 

] 

Однако, Джанго по-прежнему отправляет электронные письма с использованием шаблонов сброса пароля по умолчанию. Я пропустил что-то очевидное здесь? Благодарю.

+0

Не уверен, но .. Если вы передадите параметры с равным знаком? Email_template_name '=' email/password_reset/password_reset.txt ' – avs

+0

@avs Спасибо за ваш комментарий. Я думаю, что функция url() принимает имя функции и список аргументов ключевого слова в качестве словаря, поэтому нет необходимости использовать знак равенства? – Kieran

ответ

1

Как оказалось, я случайно определенный auth_views.password_reset дважды в моих URL. Устранение дубликата устраняет проблему.

1

Это должно быть так просто (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'), 
+0

Привет @marksweb, спасибо за ваш ответ. Я не думаю, что нужно использовать имя kwargs, поскольку я передаю его как третий аргумент, поэтому Python знает, что я имею в виду, даже не называя его. Django уважает «имя_файла», но ничего больше, поэтому он должен получать словарь аргументов через? – Kieran

+1

@ Киран, да, честно говоря, я заглянул туда, и ты прав. Если вы сопоставили имена шаблонов, как кажется, у вас есть, это должно сработать. –

Смежные вопросы