我目前正在使用Django开发API。
但是,我想创建一个视图,该视图返回具有以下端点的当前User :/users/current/
。
为此,我创建了一个列表视图,并过滤了发出请求的用户的查询集。可以,但是结果是列表,而不是单个对象。结合分页,与其他端点相比,结果看起来过于复杂和不一致。
我也尝试创建详细视图并过滤查询集,但DRF抱怨我没有提供pk或slug。
你有什么主意吗?
使用类似的方法,最好脱离常规视图并自己编写视图。
@api_view(['GET'])
def current_user(request):
serializer = UserSerializer(request.user)
return Response(serializer.data)
您也可以像这样使用基于类的视图来做同样的事情。
class CurrentUserView(APIView):
def get(self, request):
serializer = UserSerializer(request.user)
return Response(serializer.data)
当然,也没有要求使用序列化程序,也可以从用户实例中提取所需的字段。
@api_view(['GET'])
def current_user(request):
user = request.user
return Response({
'username': user.username,
'email': user.email,
...
})
希望能有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句