2017-08-29 5 views
0

DRFを使用してカスタム表示とURLを追加する方法を知りたいと思います。DRFのカスタム表示とURL

私は現在/users/123/のようなURLを使用してユーザーオブジェクトを表示することができますが、私もそう以内に新しいメソッドを呼び出すでしょう/users/123/history/のようなURLをユーザーの履歴を表示する機能を持っているしたいUserDetail(APIView)クラスを持っていますUserDetailクラス。これを行う方法はありますか?

私はDRFドキュメントを見てみましたが、ViewSetsとカスタムルータでこれを実現できるように見えますが、ビューセットを使用するとエラーが発生し、querysetを定義する必要があります。

+0

これはあなたが探しているものですか? http://www.django-rest-framework.org/api-guide/viewsets/#marking-extra-actions-for- route –

+0

実際には動作しますが、私は ' urls.py'ファイルのように: url(r '^ users /(?P [0-9] + | me)/ $'、UserDetail.as_view({'get': 'get'、})) URL(r '^ users /(?P [0-9] + |私)/履歴/ $'、UserDetail.as_view({'取得': '履歴'、})) URLファイルを膨らませることなくそれをしますか? –

答えて

0
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) 
関連する問題