在django-transmeta中以默认语言获取字段的值

时间:2011-11-28 14:43:04

标签: python django django-transmeta

我正在使用django-transmeta来帮助我的多语言模型。这是我的一个示例模型:

class Edition(models.Model):

    __metaclass__ = TransMeta

    name = models.CharField(max_length=64)

有人能告诉我如何以默认语言获取name字段的值。我想覆盖模型的__unicode__方法,以便显示有意义的标题。目前它显示为Edition Object并且不是很有帮助。

感谢。


编辑:我已经设法这样做,但这取决于语言代码是硬编码的事实。

class Edition(models.Model):

    __metaclass__ = TransMeta

    name = models.CharField(max_length=64)

def __unicode__(self):

    return self.name_en

2 个答案:

答案 0 :(得分:2)

您好我是django-transmeta的开发人员。对于每个国际化字段,您都有一个名称为field original的属性。

edition = Edition.objects.all()[0]
print edition.name
print edition.name_en
print edition.name == edition.name_en

如果不起作用,您应该在设置中检查LANGUAGE_CODE和TRANSMETA_DEFAULT_LANGUAGE(这是可选的)

答案 1 :(得分:1)

ModelTranslation使用相同的约定(_en,_fr,...),但根据当前的请求语言透明地使用它。

https://github.com/deschler/django-modeltranslation

此外,它目前仍处于活动状态。