我有一个带有一组选择的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()
并且也不会翻译。
任何帮助将不胜感激。
LOCALE_PATHS
中的settings.py
不包含根目录locale/
文件夹。常量CHOICES_CONSTANT
和其他常量存储在项目目录中,而不是应用程序中,因此该应用程序未从根目录获取翻译。