【发布时间】:2017-02-08 12:04:39
【问题描述】:
我正在 Django 上开发类似 ERP 的小型项目,其中包含不同的应用程序(产品、销售、采购、会计、MRP ......)。其中一些具有依赖关系(例如,销售应用需要产品应用)。
为了模块化和松耦合,我试图让应用程序尽可能独立。但是,如果应用程序可以在其依赖项的模型中扩展(添加新字段)表(例如,Sales 将在其中一个表中添加 can_be_sold BooleanField产品(如果已安装)。
这样,当用户在内部选择安装应用程序时,会在数据库中进行所需的更改,以使其与依赖项正确集成。用户只安装他需要的应用程序,而不必在依赖项中提供不必要或不相关的信息。
我曾想过与依赖项建立一对一的关系,但这个解决方案并不能说服我,因为 (a) 为一两个额外字段创建这么多新表似乎效率不高, (b) 使用表单和信号会很麻烦(如果安装了许多应用程序并降低整体模块化,则使代码更难维护)。
继承或抽象类似乎也不合适,因为我不是试图为子产品创建模型,而是在表中的现有信息(条目)上增长或扩展。
实现这一目标的最佳方法是什么?我应该考虑编写自定义迁移操作吗?否则,有更好的方法吗?谢谢!
【问题讨论】:
-
您是否达到了您的要求?其实我对你的方法有点兴趣(如果你找到了)
标签: python django django-models django-migrations django-apps