You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Django Rest Framework中分配组权限后admin界面用户权限不显示?

首先明确核心原因:Django Admin 后台的「用户权限」板块默认仅展示直接绑定到当前用户的独立权限,你通过用户组分配的继承权限,默认不会在这个区域展示。

排查&验证步骤

  • 先查看用户编辑页的「所属组」板块,确认你创建的grp_name对应的用户组已经被勾选。如果组已经正常勾选,说明你的权限分配逻辑完全正常,只是展示位置不对:组继承的权限在实际权限校验(比如调用user.has_perm(权限codename))时会正常生效,不需要额外修改代码。
  • 如果「所属组」里也没有对应组被勾选,排查以下代码问题:
    • 你查询权限用的Permission.objects.get(name=permission)逻辑风险很高:Permission表的name字段是后台展示的可读国际化名称,很容易因为语言设置、字段修改出现匹配错误,建议改为用codename+应用标签联合查询,写法更稳定:
      # 示例:查询admin应用下新增日志的权限
      permission_obj = Permission.objects.get(codename='add_logentry', content_type__app_label='admin')
      
    • 确认你操作的user对象和Admin后台查看的用户是同一个,没有操作错实例。
    • 清除浏览器缓存、刷新Admin页面,或者重启Django服务排查缓存导致的展示延迟。

如果确实需要在「用户权限」板块展示所有继承自组的权限,可以自定义UserAdmin的字段配置,重写权限渲染逻辑即可,默认配置下不会展示这部分内容。

相关截图

内容的提问来源于stack exchange,提问作者Jasmeet Pabla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 03:45:07