Django通过Mandrill发送邮件而不设置language_code

1 投票
1 回答
944 浏览
提问于 2025-04-20 22:45

我正在使用Mandrill API来发送邮件。问题是,发送的邮件没有正确的LANGUAGE_CODE设置,这个设置我在settings.py文件中使用了。

在我的settings.py文件中,有以下几行:

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.request",
    "events.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.tz",
)
...
LANGUAGE_CODE = 'es'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True

managment/commands/sendmails.py文件中,发送邮件的部分代码是:

def generate_html(events):
    template = loader.get_template('mail_request_list.html')
    return template.render(Context({'events': events}))

def send_emails():
    mandril_client = mandrill.Mandrill(key)
    message = {
        'from_email': 'info@myapp.com',
        'from_name': 'myapp',
        'subject': u'Title',
    }

    events = get_events() #Other function
    html_request = generate_html(events)
    message['html'] = html_request
    message['to'] = [{
        'email': 'test_user@myapp.com',
        'type': 'to'
    }]
    mandril_client.messages.send(
         message=message
    )

HTML文件mail_request_list.html

<!DOCTYPE html>
<html lang="es">
<body>
{% for event in events %}
    Mes: {{ event.begin_at|date:'F'|lower }} 
    <br>
{% endfor %}
</body>
</html>

我可以发送邮件,但日期显示的是英语,而不是我应用中设置的西班牙语。

1 个回答

0

你需要在你的 settings 文件中正确设置 DATE_FORMAT,而 LANGUAGE_CODE 这个设置并不负责任何格式的设置。

撰写回答