身份验证和Django站点

2024-05-23 20:16:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Django构建一个web应用程序。基本上是针对特定业务类型的客户关系管理。让我们假设这是为健身房的解释。我会有多个客户。客户将获得自己的三级域名。像golds.gym.com和24hrfitness.gym.com. 每个客户都将使用自己的网站。我想允许跨站点的用户名重叠,但每个站点都是唯一的。我还想使用内置的管理页面,但我需要确保管理页面是网站特定的。 我的问题是,“这可能吗?”。但我想我真正想知道的是“这可能是使用内置的东西还是其他人为Django准备的东西?” 我已经看了网站框架文档,这似乎是我需要的,但是我没有找到任何文档,如何使管理员和用户的网站具体。在


Tags: django文档comweb应用程序类型客户站点
1条回答
网友
1楼 · 发布于 2024-05-23 20:16:55

当然可以用sites框架来实现,但是需要大量的引导。这也假定您将为每个站点使用不同的主机名,因为站点框架就是这样工作的。在

使用sites框架时,有middleware available that automatically populates the ID of the site on the request object。在

如果您希望最终用户能够使用admin部分并且只看到他们帐户上的对象,则需要为每个模型使用一个account外键。在

然后,您可以在视图中重写get_queryset,以自动排除不属于该帐户的任何对象。在

当然,您还需要一个custom user model,这样就可以将用户链接到站点。在

如果您使用的是postgres,那么可以考虑签出Django Tenant Schemas,它使用本机postgres模式实现多租户。在

相关问题 更多 >