1

我对站点框架是什么有一个大致的了解,但经过大量研究,我无法确认想要实现的目标是否可行。

这是我想要实现的(简化)。这些将是三个独立的站点 - 以及独立的 Django 项目。这可能吗?

站点/项目 1:Customers.ourdomain.com

  • 该网站管理有关我们客户的一切。
  • 将有一个模型称为Contact存储有关客户的所有信息(姓名、地址、电子邮件等)
  • 具有用于查看Contact模型对象、编辑其详细信息等的视图

站点/项目 2:WorkOrders.ourdomain.com

  • 该站点将管理与工单有关的所有事情
  • 会有一个WorkOrder模型,用于创建/编辑/管理工作订单以进行安装和服务等。
  • 为了为我们的客户创建工作订单,WorkOrder模型需要Customer从其他站点了解模型。工单站点不需要编辑客户的数据——只需要对所有客户都有读取权限

站点/项目 3:Accounting.ourdomain.com

  • 会计网站,用于处理所有会计事项,如发票、应收账款、收入等。
  • 会有一堆与会计相关的模型,比如Invoice,Payment等。
  • 会计站点需要知道和访问(只读)联系站点(以知道向谁开具发票)和所有工单模型中的所有记录以参考使用了多少劳动力和材料来计算金额欠。

所以会有三个独立的站点,每个站点作为一个单独的 Django 应用程序,但是一些模型需要对其他站点可见。

这可能吗?


我们有一些特定的用例原理来分离这样的功能单元。我知道使用单独的应用程序简单得多,但这对我们来说并不理想。

4

2 回答 2

0

我目前正在做类似的事情。我们的 Django 项目包括 3 个应用程序。模型存储在相应的应用程序中,但在必要时在它们之间共享(导入)。

我们有三个由三个应用程序运行的实时站点。

___.something.com
___2.something.com
___3.something.com

我不知道如果您为三个站点设置三个项目,这将如何运作。您必须确保模型和迁移始终保持同步。这将变得非常不切实际。

这就是 Django 首先拥有应用程序的原因。因此,如果您需要扩展或扩展,您可以在同一个项目中进行。

于 2016-09-30T16:13:16.720 回答
0

这是站点框架的完美用例。绝对有可能做你所描述的。

好处是:

  1. 您将拥有一个可从所有三个域名访问的数据库。
  2. Django 可以根据子域定制呈现给用户的模板/数据。
  3. 你可以用一台服务器来完成这一切……只需在你的 NGINX 或 Apache 服务器上使用虚拟主机。
于 2017-09-21T15:50:16.707 回答