2019-06-19【关于django中auth模块的表】

2019-07-31  本文已影响0人  warmsirius

参考博客

auth模块相关的表

三张表的关系

从数据库生成的表来看,这三张表实现了两两多对多的关联,

下图所示

auth表.jpg

User表

在auth中user继承自AbstractUser,其中AbstractUser又继承自AbstractBaseUser和PermissionsMixin。

user表.png

Group表

组提供的功能比较少,只包含一个name属性和natural_key(返回一个元组)方法。

项目中引用:

from django.contrib.auth.models import Group

将用户添加到组中:

group.user_set.add(user)  #user为一个User对象,此处为表于表之间的多对多操作

Permission表

权限系统提供一种方式去分配权限为用户或组, 默认是为Django Admin使用的,当然也可以被我们自己使用,Permission只提供表级别的‘add’\'change'\'delete’权限,而且在每张边表创建后,对应的权限会自动创建。

属性:

判断是否有权限

In [13]: user.has_perm('app.delete_requestreusult')   #前面为APP名称,后面为权限名

从源码中可以看出,如果是已登录的管理员在调用has_perm进行权限验证时,默认会有最高权限。

上一篇 下一篇

猜你喜欢

热点阅读