django - 获取组中的所有用户 - Django

标签 django django-rest-framework

我正在尝试获取“Manager”组中所有用户的列表,发布请求有效

  @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 = <b>UserSerializer(users, many=True)</b>
        return Response({'data': <b>serializer.data</b>})
    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)

使用UserSerializerUser模型提供一个ModelSerializer

关于django - 获取组中的所有用户 - Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74945374/

相关文章:

python - 如何正确处理 django 现场错误?

Django Oauth Toolkit 2-legged 和 3-legged

django - 未提供身份验证凭据 django-rest-auth

Python/Django 模型覆盖清理后的数据

python - 在单元测试中卡住数据库时间(django 和 sqlite)

python - 如何在 Django REST Serializer 中标准化电子邮件字段值?

python - 如何在 Django Rest 框架中设置 View

Django 两步验证

python - Docker组成了没有此类文件或目录的错误。用于Ubuntu中的.sh文件

mysql - sudo supervisorctl 状态 : gumi gunicorn ERROR (spawn error)