Django Rest Framework の Viewset を手動で動かして、シリアライズ済みデータを取得する

投稿者: ytyng 3 年, 10 ヶ月 前
from rest_framework.request import Request as DRFRequest

class HomeDataView(APIView):

def get(self, request, *args, **kwargs):
data = _inner_view(request)
...

def _inner_view(drf_request):
dr = DRFRequest(drf_request._request)
dr.query_params._mutable = True
dr.query_params['page_size'] = 5
dr.query_params['intellectualproperty'] = ip_id
vs = ProductViewSet(request=dr, action='list')
vs.initial(dr)
return vs.list(ds).data


    # QuerySet を独自に作って処理したい場合
def _inner_view():
queryset = Schedule.objects.filter(...)
paginator = ScheduleViewSet.pagination_class()
page = paginator.paginate_queryset(queryset, self.request)
serializer = ScheduleViewSet.serializer_class(page, many=True)
response = paginator.get_paginated_response(serializer.data)
return response.data
現在未評価

コメント

アーカイブ

2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011