【发布时间】:2018-10-03 22:00:40
【问题描述】:
我正在使用 Django-background-tasks 异步发送电子邮件。当我在视图中发送电子邮件时,本地化工作完美,但是当我尝试从后台发送相同的电子邮件时,Django 呈现具有默认语言环境的模板。这是我用来发送电子邮件的代码:
我从views.py调用的函数
tasks.py
@background()
def send_email_async(email, json):
send_email_support_request(email, json)
email_utils.py
def send_email_support_request(email, json_data):
c = {
'request_id': json_data['request_id']
}
template = 'email_support_request.html'
email_header = {
'message': "All Data request",
'subject': "Support request"
}
send_email(c, template, email_header, email)
return
def send_email(context_dict, email_template_name, email_header_data, user_email):
subject = ''.join(email_header_data['subject'].splitlines())
email_render = loader.render_to_string(email_template_name, context_dict)
email = EmailMessage(subject=subject,
body=email_render,
from_email=settings.EMAIL_HOST_USER,
to=[user_email])
email.content_subtype = "html"
email.send()
return
模板文件
<!DOCTYPE html>
{% load i18n %}
<html lang="en" style="background-color: rgb(238,243,246)">
...
<span class="line-text" style="margin-bottom: 20px; display: inline-block;">
{% trans "Thank you for your request!"%}
</span>
如何根据header Accept-Language中指定的语言制作Django-rest-framework渲染模板?
【问题讨论】:
标签: django django-rest-framework background-task