社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

django从queryset获取用户权限

Sandesh Ghanta • 4 年前 • 473 次点击  

在我的应用程序中,每个用户都可以访问四个组中的一个(我创建了四个组)。我必须检查用户是否具有访问表单的ceritan权限。我正在从获取用户 self.request.user 并获取相应用户模型的查询集。

group = self.request.user.groups.all()

但如果我试着去做

self.request.user.groups.all().values('permissions')

它以这样一种方式打印权限:每个权限都有一个与其关联的数字。我想检查是否有任何方法可以根据我得到的查询集检查用户是否可以访问ceritan模型。我的意思是有类似的方法吗 has_perm('') 执行上述任务。我在谷歌和StackOverflow上搜索过。但没有找到令人满意的结果。那么,有没有办法执行上述操作呢??

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38414
 
473 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Willem Van Onsem
Reply   •   1 楼
Willem Van Onsem    5 年前

如果你使用 .values(..) 您可以获得 初级的 钥匙,而且 .值(..) 通常只用于某些特定情况。

您可以通过以下方式查询权限:

Permission.objects.filter(group__user=request.user).distinct()

这会给你 Permission 分配给组的对象,其中 request.user 是成员。

我们需要使用 .distinct() 这里,因为如果将权限添加到 倍数 用户所属的组,将返回该权限 倍数 时代。