我正在try 从组"Manager"获取所有用户的列表,POST请求起作用了

  @api_view(['GET','POST'])    
  def managers(request):      
     username = request.data['username']
     if username:
          user = get_object_or_404(User, username=username)
          managers = Group.objects.get(name="Manager")
          if request.method == 'POST':
                managers.user_set.add(user)
          elif request.method == 'DELETE':
                managers.user_set.remove(user)
          return Response({"message": "ok"})
     
     return Response({"message": "error"}, status.HTTP_400_BAD_REQUEST)

我在下面得到了这个错误.

KeyError at /api/groups/manager/users 'username'

拜托,能给我找个导游吗?

推荐答案

如果是GET请求,您可以使用:

@api_view(['GET', 'POST', 'DELETE'])
def managers(request):
    if request.method == 'GET':
        users = User.objects.filter(groups__name='Manager')
        serializer = UserSerializer(users, many=True)
        return Response({'data': serializer.data})
    username = request.data['username']
    if username:
        user = get_object_or_404(User, username=username)
        managers = Group.objects.get(name='Manager')
        if request.method == 'POST':
            managers.user_set.add(user)
        elif request.method == 'DELETE':
            managers.user_set.remove(user)
        return Response({"message": 'ok'})

    return Response({'message': 'error'}, status.HTTP_400_BAD_REQUEST)

User型的UserSerializerModelSerializer.

Django相关问答推荐

如何在管理页面创建实例时只在ManyToManyField字段中显示超级用户

Django中每个类型/代理的最新行

错误``Forbidden (403) CSRF 验证失败.请求中止.``` 当try 登录管理员时

如何访问 django 模板中的字典值?

django.template.response.ContentNotRenderedError: 必须渲染响应内容才能迭代

如何在 Django 模型中存储元组列表

如何计算 Django 模型中特定对象的数量?

如何让 Django 在模板更改时重新启动运行服务器?

Django 表单有 Select 但也有自由文本选项?

Django 独立脚本

在 django/python 上访问请求标头

InvalidBasesError:无法解析 [] 的基础

Django Admin - 覆盖自定义表单字段的小部件

如何迭代模板中 SelectField 的选项?

Django JavaScript 文件

get_or_create() 线程安全吗

在 Django 中扩展 urlize

使用 Django 部署 Google Analytics

如何在 django 中仅获取表的特定列?

Django 的 Select .如何设置默认选项?