2016-04-12 17 views
0

Varsayılan olarak sayfalama etkinleştirilmiş, PageNumberPagination; Bu, API sadece bir ön uç tarafından kullanıldığından beri bu yeterli olmuştu. Şimdi bunun üzerine otomasyon oluşturmaya çalışıyoruz ve tam, gösterilmemiş sonuç kümesini müşteriye geri göndermek istiyorum. Özel istekler için sayfalandırmayı devre dışı bırakmanın bir yolu var mı, örn. Bir istek parametresi iletilirse?Django REST Framework'den basılmamış sonuçlar alın

cevap

0

Aslında bir özel sayfalandırma sınıfına gittim:

class Unpaginatable(PageNumberPagination): 
    def paginate_queryset(self, queryset, request, view=None): 
     if getattr(request, 'get_all', False): 
      return None 

     return super(BuildListPagination, self).paginate_queryset(queryset, request, view=view) 

Şimdi sadece görünümümde request.get_all = True ayarlamam gerekiyor ve tüm öğeleri aldım.

0

Bir unfeasibly sayıda ayarlanmış bir istek limitli bu tahmin edebilirsiniz, ancak önce Django yapılandırmanız gerekir:

GET https://api.example.org/accounts/?limit=999999999999

:

REST_FRAMEWORK = { 
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination' 
} 

Sonra gülünç yüksek sınır isteği yapmak

LimitOffsetPagination - django-rest-framework.org