自定义Django MultilingualTextField模型字段

时间:2013-05-25 14:30:17

标签: python django django-models multilingual

我正在尝试在Django中为我的项目创建多语言文本字段。我使用JSON将翻译后的文本存储在数据库中,并在字段中编写自定义代码以使用正确的语言检索它。例如:

class MyModel(models.Model):
   text = MultilingualTextField(default_language="en")


mymodel = MyModel.objects.create(text="Welcome")
mymodel.text.val('fr','Bienvenue')
#...
mymodel.save()

当存储在数据库中时它变为

{"en":"Welcome","fr":"Bienvenue","es":"Bienvenida"}

我们可以致电model.text.val('es')以获得“Bienvenida”。

我使用json转储和json加载来存储和检索数据库值。我的问题是:这是一个很好的方法吗?有没有人有更好的技术?

1 个答案:

答案 0 :(得分:1)

你可以看看Django Model Translation。它不会将数据存储在json中,而是为每种语言创建不同的db列(例如text.en,text_fr ..),我认为这更好。