【发布时间】:2017-02-09 05:02:32
【问题描述】:
我对 Sites 框架是什么有了大致的了解,但经过大量研究后,我无法确认 我正在 尝试实现的目标是否可行。
这就是我想要实现的目标(简化)。这些将是三个独立的站点 - 以及独立的 Django 项目。这可能吗?
网站/项目 1:Customers.ourdomain.com
- 此站点管理有关我们客户的所有信息。
- 会有一个名为
Contact的模型存储有关客户的所有信息(姓名、地址、电子邮件等) - 拥有用于查看
Contact模型对象、编辑其详细信息等的视图
站点/项目 2:WorkOrders.ourdomain.com
- 此站点将管理与工单有关的所有事情
- 会有一个
WorkOrder模型,用于创建/编辑/管理工作订单以进行安装和服务等。 - 为了为我们的客户创建工作订单,
WorkOrder模型需要从其他站点了解Customer模型。工作订单网站不需要编辑客户的数据 - 只需要对所有客户具有读取权限
站点/项目 3:Accounting.ourdomain.com
- 会计网站,用于处理所有会计事项,如发票、应收账款、收入等。
- 会有一堆与会计相关的模型,比如
Invoice、Payment等。 - 会计站点需要知道和访问(只读)两个联系人站点(以了解向谁开具发票)和所有工单模型中的所有记录,以参考多少使用人工和材料来计算欠款。
因此会有三个单独的站点,每个站点都作为一个单独的 Django 应用程序,但是一些模型需要对其他站点可见。
这可能吗?
我们有一些特定的用例原理来分离这样的功能单元。我知道使用单独的应用程序这一切远简单,但这对我们来说并不理想。
【问题讨论】:
-
当然。只需使用相同的数据库。
-
这似乎是一个简单的答案。但是迁移呢?迁移客户模型对工作订单有何影响?
-
您可以使用可重复使用的应用程序来定义所有模型,并将其包含在每个站点中。如果它在
sys.path中,您只需要 1 个副本,它应该包含它自己的所有迁移。 -
这不是违背了拥有多个网站的目的吗?
-
为什么要多个站点?
标签: django django-sites