如何在Django中实现具有不同角色和权限的多种用户类型?

时间:2019-08-15 08:59:42

标签: python django

我是使用Django框架和Python编程语言进行Web开发的新手,我的任务是制作一个实现以下目标的微型项目:

  1. 权限管理;
  2. 角色管理;
  3. 用户帐户管理;
  4. 登录和注销;和
  5. 密码重置。

我要完成此操作的适当步骤是什么?

我已经阅读了有关用户身份验证和权限以及自定义用户模型的信息,但是给出的示例没有我实际需要的复杂。我必须设置一个实现多个用户帐户的应用程序,其中每个用户可以具有多个角色,并且每个角色具有不同的权限。我知道Django具有内置功能来执行此操作,但我想尽可能地进行自己的自定义。

我想知道创建扩展AbstractBaseUser的自定义用户模型是否是实现此目的的最佳选择。另外,我想知道如何自定义Django内置管理页面,例如替换或删除不必要的字段。

1 个答案:

答案 0 :(得分:0)

除了扩展AbstractBaseUser之外,另一种解决方法是拥有另一个模型Profile,并使用OneToOneField与它关联 或者您可以从AbstractBaseUser继承3个不同的用户模型,这不是一个好主意 最好的答案是扩展AbstractBaseUser 如果默认身份验证后端和权限不符合您的需求结帐(他们很可能这样做!):

Customizing authentication in Django

Custom users and permissions

还结帐:

django best approach for creating multiple type users

How to Implement Multiple User Types with Django

-更新-

,如果您要使用其他权限组结帐:

Permissions and Authorization

Groups

django.contrib.auth.models.Group模型是对用户进行分类的一种通用方法,因此您可以向这些用户应用权限或其他标签。用户可以属于任意数量的组。

组中的用户自动拥有授予该组的权限。例如,如果站点编辑器组具有权限can_edit_home_page,则该组中的任何用户都将具有该权限。