在我的python rest api应用程序中,我已经成功包含了django oauth2工具包,并且我在登录时获得了accessstoken。现在我必须编写一个api来获取当前登录用户及其组信息的详细信息。组权限。
我的urls.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__'
我的views.py
def get_me(request):
user = request.user
return {
'user': UserGroupSerializer(user).data,
}
当我打电话给这个api时,我收到以下错误,
view account.views.get_me未返回HttpResponse对象。它 返回无。
问题是什么?这是正确的方法吗?
答案 0 :(得分: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)