主题行使用send_templated_mail

时间:2014-11-25 17:31:32

标签: python django django-templates django-views

我正在尝试修复一些遗留的django代码中的错误,并且我不是任何专家,所以我希望有人可以帮助解决这个小难题。

我有一个views.py,其中说明了以下内容(注意:用户是现有对象):

if user.is_eligible:
    email_template = 'subfolder/registered'
else:
    if form.cleaned_data['occupation'] == '1':  # media workers
        email_template = 'ideas/registered-template1'
    elif form.cleaned_data['occupation'] == '2':
        email_template = 'subfolder/registered-template2'
    else:
        email_template = 'subfolder/registered-template3'

send_templated_mail(email_template, None, recipient_list=[{'email': user.email, 'name': user.get_full_name()},], context={'name': user.given_name, })

我的模板如下(ish)

{% extends 'templated_email/subfolder/base.email' %}
{% load waffle_tags %}

{% block subject %}Thank you for registering{% endblock %}

{% block header_image %}header.jpg{% endblock %}

{% block plain_body %}
Thank you for registering!

Congratulations.
{% endblock %}

{% block html_body %}
<p style="margin:12px 0;">
    <font face="Verdana,Arial,sans-serif" color="#595959" style="font-size:12px; line-height: 16px; -webkit-text-size-adjust: none; text-size-adjust: none;">Thank you for registering!<br/></font>
</p>
<p style="margin:12px 0;">
    <font face="Verdana,Arial,sans-serif" color="#595959" style="font-size:12px; line-height: 16px; -webkit-text-size-adjust: none; text-size-adjust: none;">Congratulations<br/></font>
</p>
{% endblock %}

我所遇到的问题是,尽管模板通过正确而正确,但主题行是作为模板的名称出现的,但不适用于所有模板。

我尝试用下划线替换破折号(所以subfolder/registered_template3.email)。

任何人都可以建议您尝试一下吗?

由于 奥比

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。

common.py(设置)中,主题的写法如下:

TEMPLATED_EMAIL_MANDRILL = {
    '_default': {
        'auto_html': None,
        'auto_text': None,
        'from_email': 'return@address.com',
        'from_name': 'Reply Name',
        'google_analytics_campaign': 'email@address.com',
        'google_analytics_domains': ['email@address.com'],
        'headers': {'Reply-To': 'return@address.com'},
        'important': False,
        'inline_css': None,
        'metadata': {'website': 'www.mysite.com'},
        'return_path_domain': None,
        'signing_domain': None,
        'track_clicks': None,
        'track_opens': None,
        'tracking_domain': None,
        'url_strip_qs': None,
        'view_content_link': None,
    },
    'subfolder/registered': {
        'subject': 'My subject line',
        'from_name': 'Me'
    },
    'subfolder/registered_template1': {
        'subject': 'My subject line',
        'from_name': 'Me'
    },
    'subfolder/registered_template2': {
        'subject': 'My subject line',
        'from_name': 'Me'
    },
    'subfolder/registered_template3': {
        'subject': 'My subject line',
        'from_name': 'Me'
    },
}

(使模板中的{% block subject %}无效)

添加丢失的(并且错误地渲染主题行)修复了问题。

无论如何,谢谢你的观察:)