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

Django中如何获取全部用户组名称而非仅特定用户所属组?

Django获取所有可用用户组的实现方法

你之前使用的groups = request.user.groups.all()仅用于获取当前请求用户所属的用户组,若要获取Django Admin后台展示的全量可用用户组,直接调用Django内置的Group模型的查询接口即可,实现方式如下:

  • 首先导入Django内置的用户组模型:
    from django.contrib.auth.models import Group
    
  • 查询全量用户组:
    • 若需要获取完整的用户组对象列表,使用:
      all_groups = Group.objects.all()
      
    • 若仅需要提取所有用户组的名称,使用values_list方法直接读取字段即可,返回结果为可迭代的名称序列:
      group_names = Group.objects.values_list('name', flat=True)
      
  • 可选对齐Admin排序规则:
    Django Admin默认按用户组名称正序排列,可显式添加排序逻辑保证查询结果和Admin展示顺序完全一致:
    group_names = Group.objects.order_by('name').values_list('name', flat=True)
    

视图调用示例

from django.contrib.auth.models import Group
from django.http import JsonResponse

def get_all_group_names(request):
    # 转为列表后可直接返回给前端或传入模板渲染
    group_name_list = list(Group.objects.order_by('name').values_list('name', flat=True))
    return JsonResponse({'group_list': group_name_list})

内容的提问来源于stack exchange,提问作者Taufique Alam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:36:03