DRF的自定义视图和URL

时间:2017-08-29 23:29:51

标签: django django-rest-framework

我想知道如何使用DRF添加自定义视图和网址。

我目前有一个UserDetail(APIView)类,可以使用/users/123/等网址显示用户对象,但我还希望能够使用{{1}等网址查看用户历史记录这可能会调用/users/123/history/类中的新方法。有没有办法做到这一点?

我已经尝试查看DRF文档,看起来他们可以通过ViewSets和自定义路由器实现这一点,但是当使用ViewSets喜欢定义UserDetail时我会遇到错误。

1 个答案:

答案 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)
相关问题