Django tuple / choices字段未翻译

问题描述 投票:0回答:1

我有一个带有一组选择的Integer ModelField。

field = models.IntegerField(choices=CHOICES_CONSTANT)

CHOICES_CONSTANT在另一个文件中定义并导入

CHOICES_CONSTANT = (
    (0, _('One')),
    (1, _('Two')),
    ...
)

_来自from django.utils.translation import ugettext_lazy as _,因为模型字段要求您使用惰性翻译。

我还将CHOICES_CONSTANT导入到其他文件(例如报告)中,在报告中我可能会说str(dict(CHOICE_CONSTANT)[object.field]) if object.field else ''

str(dict(CHOICES_CONSTANT)[object.field]) if object.field else ''未得到翻译。实际上,如果我仅输入print(CHOICES_CONSTANT),它将立即计算为默认语言(英语)。

在其他地方,我会object.get_field_display()并且也不会翻译。

任何帮助将不胜感激。

python django django-models translation lazy-evaluation
1个回答
0
投票
延迟加载的翻译正常工作。问题是LOCALE_PATHS中的settings.py不包含根目录locale/文件夹。常量CHOICES_CONSTANT和其他常量存储在项目目录中,而不是应用程序中,因此该应用程序未从根目录获取翻译。
© www.soinside.com 2019 - 2024. All rights reserved.