我正在使用 Django 重置密码流程,它向用户发送一封电子邮件,其中包含输入新密码的链接。此电子邮件的模板是 password_reset_email.html。我已将此模板复制到我自己的项目中并对其进行了自定义。但是,我无法使用特殊字符,例如 ø。通常,我使用像这样的实体
ø or ø
但它们不起作用-它们只是直接显示为书面形式。我没有设置 settings.DEFAULT_CHARSET 所以它应该是 utf-8。在我写的 .py 文件中
# coding=UTF-8
函数 PasswordResetForm 执行以下操作:
email_template_name='registration/password_reset_email.html'
...
t = loader.get_template(email_template_name)
...
c = {'email': user.email,
...
}
send_mail("subject line",
t.render(Context(c)), from_email, [user.email])
我尝试将模板更改为 .txt 而不是 .py,并使用转义。
编辑:我得到的错误是:'utf8' codec can't decode byte
编辑。我意识到问题在于它根本没有渲染。这不仅仅是一个特殊的字符问题。所以,我将把它作为一个新问题来问。