Python 在rest api中获取登录用户详细信息和组权限
在我的python rest api应用程序中,我成功地包含了django oauth2工具包,并且在登录时获得了accesstoken。现在我必须编写一个api来获取当前登录用户的详细信息及其组信息和组权限 我的URL.pyPython 在rest api中获取登录用户详细信息和组权限,python,django,python-2.7,django-rest-framework,django-oauth,Python,Django,Python 2.7,Django Rest Framework,Django Oauth,在我的python rest api应用程序中,我成功地包含了django oauth2工具包,并且在登录时获得了accesstoken。现在我必须编写一个api来获取当前登录用户的详细信息及其组信息和组权限 我的URL.py url(r'me', get_me), 我的serializers.py class UserGroupSerializer(serializers.ModelSerializer): permissions = serializers.SerializerMe
url(r'me', get_me),
我的serializers.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__'
我的观点
def get_me(request):
user = request.user
return {
'user': UserGroupSerializer(user).data,
}
当我调用这个api时,我得到以下错误:
view account.views.get_me未返回HttpResponse对象。信息技术
而没有返回任何值
问题是什么?这是我遵循的正确方法吗?您必须使用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)
那不行。在/api/v1/me处显示此错误断言错误。未在ResponseEyes上设置已接受的\u呈现程序。成功了。谢谢这是获取用户详细信息和权限的最佳方式吗?组和权限作为模型保存在数据库中。我将首先创建组和权限序列化程序,然后将这些序列化程序添加到UserGroupSerializer中。最后,您将看到JSON数组中嵌套的组和权限作为响应。