Django:使用template.render()和l10n

时间:2015-09-21 14:56:59

标签: django

我有一段代码发送带有附加CSV文件的电子邮件。 CSV包含定价信息。我的国家使用逗号作为小数点分隔符,因此我希望在CSV数据中转换价格。但是,这不符合预期。

代码使用模板,该模板也在应用程序的另一部分中用于生成这些CSV。在这种情况下,转换按预期工作。

我的l10n& i18n config看起来像这样:

LANGUAGE_CODE = 'nl-NL'
TIME_ZONE = 'Europe/Amsterdam'
USE_I18N = True
USE_L10N = True
USE_TZ = True

负责手动解析模板的代码:

template = get_template("template_file.html")
context = Context({'object_list': get_object_list()}, use_l10n=True)
csv = template.render(context)

模板的一部分:

Aantal;Eenheid;Product;Omschrijving;Inkoopprijs Euro
{%  for product in object_list %}"{{ product.amount_sum }}";"{{ product.unit_of_measurement }}";"{{ product.name }}";"{{ product.description }}";"{{ product.base_price }}"
{% endfor %} 

base_priceDecimalField

1 个答案:

答案 0 :(得分:1)

您应该在这里使用RequestContext

context = RequestContext(request, {'object_list': get_object_list()}, use_l10n=True)

如果没有这个django模板引擎将不知道正在使用哪个语言环境。