除auth_user
以外,我从未使用auth_group
,auth_group_permissions
,auth_permission
,auth_user_user_permissions
和auth_user_user_permissions
。每种型号的具体用途是什么?人们常常不需要这些吗?如果是这样,那么摆脱它们的最佳方法是什么(做一个直的DROP TABLE
或者在django级别)?是否会有消除这些的缺点?
答案 0 :(得分:1)
我建议您阅读User authentication section in the Django documentation。它将auth系统的组件描述为:
- 用户
- 权限:二进制(是/否)标志,指定用户是否可以执行某项任务。
- 组:向多个用户应用标签和权限的一般方法。
权限的最简单用法是控制某个用户可以在Django Admin site中执行的操作。您还可以使用权限来限制使用django.contrib.auth.decorators.permission_required
装饰器访问您自己的视图。
当与群组结合使用时,您可以轻松地为整组用户分配相同的权限。
您提及的其他数据库表(auth_group_permissions
等)存储用户和权限或组和权限之间的关系。
虽然您可能没有直接使用身份验证系统的这些部分,但您几乎肯定会使用依赖于它们的django.contrib.auth
中的其他代码。如果你正在使用一个你没有编写的应用程序(无论它是否是Django的一部分),那么删除应用程序创建的数据库表可能是个坏主意。