【问题标题】:How to separate languages in Django Model / Database如何在 Django 模型/数据库中分离语言
【发布时间】:2013-09-01 16:02:42
【问题描述】:


在我的 Django 项目中,我使用 i18n 国际化来翻译所有模板。现在,根据选择的语言,我还想分离用户提交到数据库的数据。我不想在一张桌子上混合多种语言。如何解决这个问题的最佳方法是什么?我正在使用 Django 1.5.2 进行开发。

【问题讨论】:

  • 那么对于具有相同模型的每种语言,您会有不同的数据库吗?
  • 我的问题是我是否真的需要不同的数据库,或者我是否可以只使用一个具有多个模型的数据库,例如MyModel_enMyModel_de
  • 我认为名称稍有不同的模型往往会造成混乱。如果您想要多个具有相同型号名称的数据库,您应该查看database routers

标签: python database django model internationalization


【解决方案1】:

我已经做了一个这样的项目。我使用了一张混合语言的表,并有一列指定它是哪种语言。我对这个实现没有任何问题。

我想到的另一种方法是动态创建一个像 content_ 这样的表并进行填充。但是非常无聊(您必须管理与其他表的 id 依赖性)并且对我来说不是必需的。

你有固定数字语言吗?

【讨论】:

  • 目前我只有两种语言。但是将来应该添加更多的语言。所以我需要一个通用的解决方案,可以很容易地被其他语言扩展。
  • 如果语言数量有限,您只能为每种语言创建一个列。如果添加新语言,添加新列很容易。这是我认为最好的解决方案
【解决方案2】:

我真的不知道什么是最好的方法。 您可以序列化一个字典,例如将此 dic 保存在您的数据库中:

{
  'en': 'Book',
  'ge': 'booch',
  ...
}

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 2023-03-09
    • 2014-02-01
    相关资源
    最近更新 更多