我正在使用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
答案 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
此外,它目前仍处于活动状态。