django以编程方式将变量附加到模型

时间:2012-11-04 17:19:37

标签: django django-models

我有一个场景,每当我从model中执行objects.filter时,我必须在查询中指定语言。出于翻译目的,我必须将request.LANGUAGE_CODE作为必填字段发送。

在我的model.py

class ModelA(models.Model):
  field_a   = models.CharField(max_length=1, choices=_statuses, default=_default_status)
  field_b   = models.ForeignKey(ModelLookup, )
  language  = None

  def i18n(self):
        return self.model.modellookupi18n_set.values_list('make_display', 'model_display', 'trim_display').get(language=self.language)

例如,当我运行ModelA.objects.filter()时,有没有办法指定语言值,如果可能的话我可以将它作为链式参数传递,否则类无法运行。

1 个答案:

答案 0 :(得分:2)

您可以从django.utils.translationsget_language() method获取有效语言:

from django.utils.translations import get_language
currentLanguage = get_language()

这是使用语言的正确方法。