2

我正在使用 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
4

2 回答 2

2

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

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

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

于 2011-12-04T19:38:01.613 回答
1

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

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

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

于 2014-02-05T04:14:34.817 回答