我想知道如何使用DRF添加自定义视图和网址。
我目前有一个UserDetail(APIView)
类,可以使用/users/123/
等网址显示用户对象,但我还希望能够使用{{1}等网址查看用户历史记录这可能会调用/users/123/history/
类中的新方法。有没有办法做到这一点?
我已经尝试查看DRF文档,看起来他们可以通过ViewSets和自定义路由器实现这一点,但是当使用ViewSets喜欢定义UserDetail
时我会遇到错误。
答案 0 :(得分:1)
from rest_framework.viewsets import ModelViewSet
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
class UserDetail(ModelViewSet):
queryset = User.objects.all()
serializer_class = UserCreateSerializer
permission_classes = (IsAuthenticated,)
@detail_route(methods=['GET'])
def history(self, request, pk):
user= self.get_object()
serializer = UserCreateSerializer(user)
return Response(serializer.data)