我有一些模型是這樣的: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,它確實顯示出來。
這是怎麼回事?