我有一些模型是这样的:Django的翻译选择领域
class Payment(models.Model):
class Status(IntEnum):
open = 0
balance = 2
closed = 1
status = models.IntegerField(choices=enum_to_choices(Status), default=0, verbose_name=_("Status"))
我使用一个枚举来表示我的选择,并在我的应用程序的其它部分使用它们。我将这些以元组的选择字段使用下面的代码:
from django.utils.translation import ugettext_lazy as _
def enum_to_choices(enum):
x = tuple([(x.value, _(x.name.replace("_", " "))) for x in enum])
return x
代码的转换部分的工作,我可以使用这些字段作为选择,但翻译不工作,这不是” t出现在我的翻译文件中。 如果我使用静态字符串如"open"
将参数更改为uggettext_lazy,它确实显示出来。
这是怎么回事?