python – django翻译模型选择

我需要为模型上的字段翻译选项.
我有这样的事情:

from django.utils.translation import ugettext as _
from django.db import models

class MyModel(models.Model):
    TYPES = (
        (1, _("Option one")),
        (2, _("Option two"))
        (3, _("Option three"))
    )
    type = models.CharField(max_length=50, choices=TYPES)

在此之前,我在登录视图上有一个脚本:

request.session['django_language'] = request.POST.get("language")

所以,问题是当django在MyModel上调用TYPES时,因为request.session [‘django_language’]不存在.

任何帮助将不胜感激.

谢谢…

最佳答案
在models.py中,您需要

from django.utils.translation import ugettext_lazy as _

ugettext_lazy将返回可调用的字符串而不是已翻译的字符串.稍后评估callable时,它将返回已翻译的字符串.它将足够晚,它将为视图/模板处理获得正确的语言.

https://docs.djangoproject.com/en/dev/topics/i18n/translation/#lazy-translations.

下一部分不是你的问题,但是:在django中你应该使用表单来处理用户输入,而不是直接从request.POST.get访问它.这是另一个主题,但我不能在这个答案中解决它,因为担心其他人可能会使用这种方法.

转载注明原文:python – django翻译模型选择 - 代码日志