Python Django生成的电子邮件不';渲染不好
我正试图修改django注册的密码rest表单,以包含一个超链接。我在激活_email.html时使用了完全相同的代码,但密码_reset_email.html不起作用。生成的电子邮件正在打印所有html标记,如。我错过了什么 下面是密码_reset_email.html的代码:Python Django生成的电子邮件不';渲染不好,python,html,django,django-forms,Python,Html,Django,Django Forms,我正试图修改django注册的密码rest表单,以包含一个超链接。我在激活_email.html时使用了完全相同的代码,但密码_reset_email.html不起作用。生成的电子邮件正在打印所有html标记,如。我错过了什么 下面是密码_reset_email.html的代码: {% load i18n %} <!doctype html> <html lang="en"> {% blocktrans %}Hello,{% endblocktrans %} {% b
{% load i18n %}
<!doctype html>
<html lang="en">
{% blocktrans %}Hello,{% endblocktrans %}
{% blocktrans %}
To reset your password, please click the following link:
{% endblocktrans %}
<body>
<p>
<a href="http://{{site.domain}}{% url 'auth_password_reset_confirm' uid token %}">
Reset password
</a>
</p>
</body>
{% blocktrans %}
If you do not wish to reset your password, please ignore this message.
{% endblocktrans %}
{% blocktrans %}Thanks,{% endblocktrans %}
{% blocktrans %}Management Team{% endblocktrans %}
{# This is used by django.contrib.auth #}
{%loadi18n%}
{%blocktrans%}您好,{%endblocktrans%}
{%blocktrans%}
要重置密码,请单击以下链接:
{%endblocktrans%}
{%blocktrans%}
如果您不想重置密码,请忽略此消息。
{%endblocktrans%}
{%blocktrans%}谢谢,{%endblocktrans%}
{%blocktrans%}管理团队{%endblocktrans%}
{#这由django.contrib.auth使用#}
下面是激活代码_email.html,以供比较。这将生成正确的结果
{% load i18n %}
<!doctype html>
<html lang="en">
<head>
<title>{{ site.name }} {% trans "registration" %}</title>
</head>
<body>
<p>
{% blocktrans with site_name=site.name %}
Hello!
</p>
<p>
We're ready to activate your account. All we need to do is make sure this is your email address.
{% endblocktrans %}
</p>
<p>
<a href="http://{{site.domain}}{% url 'registration_activate' activation_key %}">
Confirm email
</a>
</p>
<p>
{% blocktrans %}
If you didn't create a account, please just delete this email.
{% endblocktrans %}
</p>
</body>
</html>
{%loadi18n%}
{{site.name}{%trans“注册”%}
{%blocktrans与site_name=site.name%}
你好
我们已准备好激活您的帐户。我们需要做的就是确认这是你的电子邮件地址。
{%endblocktrans%}
{%blocktrans%}
如果您没有创建帐户,请删除此电子邮件。
{%endblocktrans%}
听起来电子邮件是以文本形式发送的。确保您使用的任何方法都是以html格式发送的
如果您使用的是来自
django.core.mail
的send\u mail
,那么除了message
之外,您还需要提供html\u message
参数,这听起来像电子邮件是以文本形式发送的。确保您使用的任何方法都是以html格式发送的
如果您使用的是来自
django.core.mail
的send_mail
,那么除了message
之外,您还需要提供html_message
参数,我认为django注册可能使用django默认密码模板。(同样是关于form.email工作原理的文档)。有没有一个地方我应该指定这个?我刚刚明白你的意思。我把我的url改成这个。这是你想要的吗?url(r“^password/reset/$”,auth_views.password_reset,{'html_email_template_name':'registration/password_reset_email.html','post_reset_redirect':reverse_lazy('auth_password_reset_done'),name='auth_password_reset'),现在html电子邮件没有收到{{{site.domain}. 您知道如何解决这个问题吗?实际上,django注册在默认情况下不支持html电子邮件:您可能需要修改它的模型,如下面的回答所示:site.domain可能需要在视图中显式设置,并传递给模板(如果它不接收它)。您可以扩展任何内置视图来完成此操作。非常感谢您的帮助。奇怪的是,激活电子邮件已经以html的形式发送(正如上面提到的我的激活html一样)。然而,密码重置似乎使用了一些默认的django模板,我看不到文档。在这种情况下我该怎么办?我没有定义和视图或表单以便修改。我认为django注册可能使用django默认密码模板。(同样是关于form.email工作原理的文档)。有没有一个地方我应该指定这个?我刚刚明白你的意思。我把我的url改成这个。这是你想要的吗?url(r“^password/reset/$”,auth_views.password_reset,{'html_email_template_name':'registration/password_reset_email.html','post_reset_redirect':reverse_lazy('auth_password_reset_done'),name='auth_password_reset'),现在html电子邮件没有收到{{{site.domain}. 您知道如何解决这个问题吗?实际上,django注册在默认情况下不支持html电子邮件:您可能需要修改它的模型,如下面的回答所示:site.domain可能需要在视图中显式设置,并传递给模板(如果它不接收它)。您可以扩展任何内置视图来完成此操作。非常感谢您的帮助。奇怪的是,激活电子邮件已经以html的形式发送(正如上面提到的我的激活html一样)。然而,密码重置似乎使用了一些默认的django模板,我看不到文档。在这种情况下我该怎么办?我没有定义要修改的视图或表单。