Django - 在不同环境中使用不同的模型

时间:2014-10-28 14:33:50

标签: python django django-models architecture django-forms

我们有一个django应用程序,它的核心是一系列带有表单的网页,我们的用户按顺序填写。 (我们将特定系列的页面称为“#34; flow&#34 ;.”

我们将为合作伙伴白色标记此应用程序 - 合作伙伴将希望添加一些字段,甚至添加一些带有自己新表单的网页。这可能会导致填写表格的新订单。 (除了对现有表格/模型或新表格/模型的更改之外,还有新的"流程")

根据应用程序的运行实例(例如环境变量),扩展现有的简单Forms-and-Models结构以使用不同的表单和模型的最佳方法是什么?我们想到的一些事情:

  • 为应用中的每个模型和表单使用实现类似get_user_model的内容,这将查看当前环境
  • 实现更通用的键值存储,以便我们不受当前实现的字段类型的约束(即,数据字段名称也是数据的一部分)
  • 跟踪这个特定环境的数据模型" flow"以及需要使用的模型
  • 为每个新的白标执行创建现有模型和表单的子类

1 个答案:

答案 0 :(得分:0)

模型字段注入可能就是您要找的内容,请查看this article

  

这种方法归结为三个概念:

     
      
  • 向模型类动态添加字段确保Django的模型
  •   
  • 系统尊重新字段
  •   
  • 正确使负载顺序正常工作
  •   

Mezzanine 通过EXTRA_MODEL_FIELDS

为动态额外模型实施此模型字段注入做得非常出色