0

在我的 python rest api 应用程序中,我已成功包含 django oauth2 工具包,并且在登录时我正在获取 accesstoken。现在我必须编写一个 api 来获取当前登录用户的详细信息及其组信息和组权限。

我的网址.py

url(r'me', get_me),

我的serialzers.py

class UserGroupSerializer(serializers.ModelSerializer):
    permissions = serializers.SerializerMethodField(required=False)
    groups = serializers.SerializerMethodField(required=False)

    def get_groups(self, obj):
        group_list = []
        for group in obj.groups.all():
            group_list.append(group.name)
        return group_list


    def get_permissions(self, obj):
        permissions = []
        for group in obj.groups.all():
            group_permissions = group.permissions.all().values_list('codename', flat=True)
            for group_permission in group_permissions:
                permissions.append(group_permission)
        return permissions

    class Meta:
        model = get_user_model()
        exclude = ('password','user_permissions',)
        #fields = '__all__'

我的观点.py

def get_me(request):
    user = request.user
    return {
       'user': UserGroupSerializer(user).data,
    }

当我调用这个 api 时,我收到以下错误,

视图 account.views.get_me 没有返回 HttpResponse 对象。它返回 None 。

问题是什么?这是正确的方法吗?

4

1 回答 1

1

您必须为您的函数返回一个值HttpResponse或另一个响应get_me函数。

DRF这样做的方式:

from rest_framework.response import Response
from rest_framework import status
from rest_framework.decorators import api_view

@api_view(['GET'])
def my_funct(request):
        user = request.user
        return Response({'user': UserGroupSerializer(user).data}, status=status.HTTP_200_OK)
于 2017-01-24T07:26:04.423 回答