【发布时间】:2020-10-11 13:56:38
【问题描述】:
myproject
|- myapp
我创建了一个 django 项目,其中有一个应用程序可以查看、将数据添加到数据库等。现在我想创建多个用户,他们可以将这个应用程序与他们自己的数据一起使用。最好的方法是什么。
假设有 3 个用户 user1、user2、user3。用户 1 为公司 1 工作 用户 2 为公司 2 工作,用户 3 为公司 3 工作。所以每个用户都有自己的数据。
目前我正计划这样做。 我复制 myapp 代码并为每个用户创建 3 个应用程序。所以项目目录看起来是这样的
myproject
|- myapp
|- myappuser1
|- myappuser2
|- myappuser3
所以我现在有 3 个具有相似功能的应用程序,每个用户都有自己的数据。现在,障碍是我如何限制访问,以便每个用户都可以看到自己的应用程序。例如,user1 应该只能看到 myappuser1 的内容,而 user2 应该只能看到 myappuser2 的内容。我怎样才能做到这一点 ?我尝试在 django admin 中创建组,但这仅授予我编辑对 myapp 下模型的访问权限的权限。它不限制用户查看其他用户的页面。
选项 2: 为每个用户创建单独的 django 项目。这解决了用户限制,但要在 heroku 中部署,我应该将每个注册为一个应用程序,然后我必须创建一个唯一的登录页面,每个客户都可以通过该页面登录,否则我必须为每个用户提供不同的登录 url。
请问有没有更好的办法?
【问题讨论】:
-
如果三个用户是指三种不同类型的用户,那么实施基于角色的访问可能会有所帮助。
-
不基于角色。假设他们来自不同的公司。
-
您想构建多租户架构吗?此外,如果用户和他们想要访问的应用程序之间没有重叠,为什么不创建单独的项目?
-
感谢您的支持。是的多租户。用户将使用几乎相同的应用程序,但数据不同。选项 2 是创建不同的项目,但随后我遇到了部署问题,例如在 heroku 中,我为一位客户创建了一个 heroku 应用程序
-
具有不同数据的相同应用程序:听起来就像任何其他 Web 应用程序。根据谁登录进行查询,只显示与他们相关的信息。
标签: django multiple-users