Django Sites框架 - 我可以做这些事吗?

时间:2016-09-30 15:01:22

标签: django django-sites

我对网站框架的概念有一个大概的了解,但经过大量的研究,我无法确认是否有可能实现

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

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

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

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

  • 此网站将管理与工作订单相关的所有内容
  • 会有一个WorkOrder模型,用于创建/编辑/管理执行安装和服务的工单等。
  • 要为我们的客户创建工作订单,WorkOrder模型需要了解其他网站的Customer模型。工作订单网站不需要编辑客户的数据 - 只需要拥有所有客户的读取权

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

  • 处理所有会计核算的会计网站,如发票,应收账款,收入等。
  • 会有一堆与会计相关的模型,如InvoicePayment等。
  • 会计网站需要知道并访问(只读)两个联系网站中的所有记录(以了解发票人)和所有工作订单模型,以参考多少劳动力和材料用于计算欠款。

因此,将有三个单独的站点作为单独的Django应用程序,但某些模型需要对其他其他站点可见。

这可能吗?

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

答案 1 :(得分:0)

这是sites framework的完美用例。绝对有可能做你正在描述的事情。

好处是:

  1. 您将拥有一个可从所有三个域名访问的数据库。
  2. Django可以根据子域定制呈现给用户的模板/数据。
  3. 您可以使用一台服务器完成所有操作...只需在NGINX或Apache服务器上使用虚拟主机。