MawaLog

一日一日、楽しく生きる。技術と音楽が好き。

DRF::views.py各種APIViewでオーバーライドできる関数などのメモ

Django

Django

各種APIViewでオーバーライドできる関数などのメモ

(ご注意)自分が実装したものだけ書いているので網羅的ではないです><

[ListCreateAPIView]

  • def get_queryset(self):
#ulrに<int:pk>をつけている場合

def get_queryset(self):
    queryset = □□.objects.all().filter(□key□=self.kwargs['pk'])
    return queryset

[RetrieveAPIView]

  • def get(self):
#ulrに<int:pk>をつけている場合
from rest_framework.response import Response
from rest_framework.status import HTTP_200_OK


def get(self, request, pk, format=None): #urlにあるのでpkを入れ込みます
        instance = self.queryset.get(id=pk)  #例
        return Response(data={
            'id': str(self.request.user.id),
            'first_name': str(instance.first_name),
            'last_name': str(instance.last_name),
            },status=HTTP_200_OK)

こんな感じでgetで返す値をオーバーライドして設定します

  • def get_object(self): はreturn instance という感じでインスタンスが返り値の場合にオーバーライドする(と思われます)