我是使用Django框架和Python编程语言进行Web开发的新手,我的任务是制作一个实现以下目标的微型项目:
我要完成此操作的适当步骤是什么?
我已经阅读了有关用户身份验证和权限以及自定义用户模型的信息,但是给出的示例没有我实际需要的复杂。我必须设置一个实现多个用户帐户的应用程序,其中每个用户可以具有多个角色,并且每个角色具有不同的权限。我知道Django具有内置功能来执行此操作,但我想尽可能地进行自己的自定义。
我想知道创建扩展AbstractBaseUser的自定义用户模型是否是实现此目的的最佳选择。另外,我想知道如何自定义Django内置管理页面,例如替换或删除不必要的字段。
答案 0 :(得分:0)
除了扩展AbstractBaseUser之外,另一种解决方法是拥有另一个模型Profile,并使用OneToOneField与它关联 或者您可以从AbstractBaseUser继承3个不同的用户模型,这不是一个好主意 最好的答案是扩展AbstractBaseUser 如果默认身份验证后端和权限不符合您的需求结帐(他们很可能这样做!):
Customizing authentication in Django
还结帐:
django best approach for creating multiple type users
How to Implement Multiple User Types with Django
-更新-
,如果您要使用其他权限组结帐:
django.contrib.auth.models.Group
模型是对用户进行分类的一种通用方法,因此您可以向这些用户应用权限或其他标签。用户可以属于任意数量的组。
组中的用户自动拥有授予该组的权限。例如,如果站点编辑器组具有权限can_edit_home_page
,则该组中的任何用户都将具有该权限。