【问题标题】:Django - Using different models in different environmentsDjango - 在不同的环境中使用不同的模型
【发布时间】:2014-12-24 00:22:44
【问题描述】:

我们有一个 django 应用程序,其核心是一系列带有表单的网页,我们的用户按顺序填写这些表单。 (我们将带有表单的特定页面系列称为“流”。)

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

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

  • 为应用程序中使用的每个模型和表单实现类似 get_user_model 的东西,这将查看当前环境
  • 实现更通用的键值对存储,以便我们不受当前实现的字段类型的约束(即,数据字段名称也是数据的一部分)
  • 一种数据模型,用于跟踪此特定环境的“流”以及它需要使用的模型
  • 为每个新的白标实现子类化现有模型和表单

【问题讨论】:

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


    【解决方案1】:

    Model Field injection可能是你要找的,看看this article

    该方法归结为三个概念:

    • 为模型类动态添加字段确保 Django 的模型
    • 系统尊重新字段
    • 让负载排序正确以使上述工作正常

    Mezzanine 通过EXTRA_MODEL_FIELDS

    用动态额外模型实现了这个模型字段注入,做得很好

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多