私は自分のページ区切りクラスを持っています。Django Rest Frameworkのページ分類クラスにコンテキストを渡す
class BasicPagination(PageNumberPagination):
page_size = 3
page_size_query_param = 'page_size'
max_page_size = 20
def get_paginated_response(self, data):
has_next, has_previous = False, False
if self.get_next_link():
has_next = True
if self.get_previous_link():
has_previous = True
meta = collections.OrderedDict([
('page', self.page.number),
('has_next', has_next),
('has_previous', has_previous),
])
ret = collections.OrderedDict(meta=meta)
ret["results"] = data
return Response(ret)
また、私は、カスタムクエリセット方法とpagination_class = BasicPagination
を持ってgenerics.ListCreateAPIView
クラスを、持っています。私はself.kwargs.get("obj_type")
をページ分類クラスに渡し、obj_type
ではなくresults
を表示したいと思います。ここに私のクラスビューがあります。 self.kwargs
をページ分類クラスに渡すにはどうすればよいですか?
それはOBJ_TYPEがないあなたがあなたの応答に重要ではなく、「結果」の
obj_type
になりたいというあなたは意味
結果表示 -
class Translation(ListCreateAPIView):
pagination_class = BasicPagination
serializer_class = TranslationStepSerializer
def get_queryset(self):
api_controller = ApiController.load()
obj_type = self.kwargs.get("obj_type")
pk = self.kwargs.get("pk")
data = api_controller.get_translation(obj_type, pk)
return data if not None else None
は、多分上書きしようobj_typeの余分な引数をとり、super(PageNumberPa)を呼び出して返すBasicPaginationコンストラクタです。したがって、あなたのクエリセットメソッドでは、あなたのpagination_classを再初期化し、あなたのobj_typeを渡すことができます。 – pitaside