如何在Django 1.7中处理复杂的静态数据

时间:2014-12-16 05:41:17

标签: django database django-models

我有一个django应用程序,它以标准的生产 - 登台 - 开发风格部署在三个环境中。该应用程序有几个模型,其中的字段基本上只是选择。我用以下格式编码:

CHOICE1 = 1
CHOICE2 = 2

CHOICES = ((CHOICE1, 'Choice 1'),
            (CHOICE2, 'Choice 2'),)

choice = IntegerField(choices=CHOICES)

这没关系,让我做了something==CHOICE1而不是something==1这样的好事。但是,现在我想让数据变得更复杂,因为可以创建多个选项的字段(多对多)以及可能有关选择的其他数据(例如,是否要显示它们)所有这些都是相当多的静态(随着应用程序的发展,可能需要稍微改变)。

除了静态数据之外,所有这些都指向将其存储在数据库中。将其存储在数据库中的另一个问题是保持所有环境中的数据一致。我曾经认为inital_data灯具是理想的,但它们现在已经在1.7中被弃用了。推荐的替代方案是使用数据迁移,但从我可以看出这是非常重要的,并且需要迁移数据的每次更改,而不是让一个文件完整地反映静态数据的状态。这是对的吗?

我想要的是能够拥有:

  • 存储静态数据的一个文件
  • 将数据自动推送到数据库,比如每次迁移(可以覆盖 数据库数据)
  • 使用代码
  • 中定义的常量引用选项的方法

这可能吗?

0 个答案:

没有答案