2016-04-15 15 views
0

ジェネリックListまたはListCreateAPIViewをサブクラス化するときにページネーションを自由にする必要があると言われていますが、ページングの兆候はありません。ここでDjango Rest Framework 3.2.3ジェネリックでページネーションが機能しないListCreateAPIView

が...私は設定で持っているもの

REST_FRAMEWORK = { 
    'DEFAULT_PAGINATION_CLASS': 
     'rest_framework.pagination.PageNumberPagination', 
    'PAGE_SIZE': 25, 
    'MAX_PAGE_SIZE': 50, 
    'TEST_REQUEST_DEFAULT_FORMAT': 'json', 
    'TEST_REQUEST_RENDERER_CLASSES': (... 
    ), 
    'DEFAULT_FILTER_BACKENDS': (... 
    ) 
} 

マイビューです:

class RequestList(generics.ListCreateAPIView): 

    # set context for serializers 
    def get_serializer_context(self, *args, **kwargs): 
     context = { 
      'request': self.request, 
      'view': self, 
      'format': self.format_kwarg, 
      'request_type_id': 1} 
    return context 

    request_type_code_model_map = { 
     "S": Request.objects.filter(request_type_id=1, status='open'), 
     ...} 

    def get(self, request, request_type_code="S", format=None, *args, **kwargs): 

     queryset = self.request_type_code_model_map.get(
      request_type_code, "S") 
     serializer_class = RequestSerializer 
     serializer = serializer_class(
      instance=queryset, context=self.get_serializer_context(), 
      many=True) 

    return Response(serializer.data) 

任意の助けもいただければ幸いです。私は設定でさまざまな設定オプションを設定して、カスタムページネイタクラスを作成しようとしましたが、私は何もページ付けを試みていないようです。ページ設定は、ビューセットを使用しているユーザーとグループでは機能していますが、ジェネリックを使用しているビューはありません。どんなアイデア、私が逃しているものか、解決策についての手がかりは大いにありがたく思う。

答えて

3

ページ設定は、呼び出す部分をオーバーライドしない限り無料です。 list sourceをブラウズして、その実装方法とgetメソッドの書き方を確認できます。

+0

Linoviaありがとうございました。これはトリックでした。私はこれがおそらく昨日のケースであると仮定していましたが、機能するものを実装しましたが、閲覧可能なAPIの可視コントロールを手に入れませんでした。これが鍵だった。とても有難い! – cjukjones

関連する問題