我需要一些帮助来制定一个项目攻略。
想象一下,这个站点是为一个分布在全球的区域销售办事处监管团体而设计的。这个项目的目的是让超级用户快速启动针对每个办事处的全新子站点——站点会经常被添加。办事处子站点应该完全包含特定于该子站点的“管理员”用户,并且应该是易于使用的CMS。超级用户应该能够进入并管理所有这些办事处子站点。
除了自包含的办事处子站点实例之外,还需要每个子站点来管理联系人、潜在客户等信息,并将其存储在一个集中的区域供超级用户使用。
我做过几个使用Django的站点,但从未做过任何多租户的站点。我想寻求建议,以便使用哪些技术或有哪些教程/文档可能会有所帮助。
要求:
- 每个子站点使用相同的源(模板、JS、可用功能等),但可以修改以反映模板中的自定义内容。
- 为每个子站点分配子域名(选项为使用完全限定域),配置在项目内,而不是在硬编码的设置文件中。
- 子站点特定的用户访问控制,除了可以访问所有子站点的超级用户之外。
- 为每个子站点提供“独立”的CMS的能力。即,子站点管理员仅看到他们的内容。我对这个项目的偏好是django-cms,但我也愿意考虑其他选择。
- 支持从所有子站点汇集数据的应用程序,但限制子站点“管理员”仅查看其记录。
考虑上述需求,您会推荐哪种方法?我愿意重新考虑技术,但我想坚持使用Python。
SiteUser
模型共享到所有模式(即public
)中,对于每个允许的模式,它都包含模式内用户模型的ID。否则,您可以只共享User
模型,并在另一个中间件/自定义身份验证后端中处理身份验证。 - Maciej Gol