我已经被客户要求他的satchmo商店在重置密码时应该发送一个html格式的邮件.
很明显,satchmo或django的contrib.auth.views.password_reset只发送原始电子邮件.
如何修改这个以便能够发送html格式的邮件?
谢谢!
我没有使用Satchmo,但这应该让你开始.
首先,子类化PasswordResetForm,并覆盖save方法以发送html电子邮件而不是纯文本电子邮件.
from django.contrib.auth.forms import PasswordResetForm
class HTMLPasswordResetForm(PasswordResetForm):
def save(self, domain_override=None, email_template_name='registration/password_reset_email.html',
use_https=False, token_generator=default_token_generator, from_email=None, request=None):
"""
Generates a one-use only link for resetting password and sends to the user
"""
# Left as an exercise to the reader
Run Code Online (Sandbox Code Playgroud)
您可以使用现有PasswordResetForm的指南.您需要send_mail在最后用代码替换呼叫以发送HTML电子邮件.有关发送HTML电子邮件的文档应该有所帮助.
编写完表单后,需要将表单包含在url模式中password_reset.正如我所说,我没有任何Satchmo的经验,但是看看源代码,我想你想satchmo_store.accounts.urls通过更改password_reset_dict 来更新.
# You need to import your form, or define it in this module
from myapp.forms import HTMLPasswordResetForm
#Dictionary for authentication views
password_reset_dict = {
'template_name': 'registration/password_reset_form.html',
# You might want the change the email template to .html
'email_template_name': 'registration/password_reset.txt',
'password_reset_form': HTMLPasswordResetForm,
}
# the "from email" in password reset is problematic... it is hard coded as None
urlpatterns += patterns('django.contrib.auth.views',
(r'^password_reset/$', 'password_reset', password_reset_dict, 'auth_password_reset'),
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |