Mam ViewSet jak ten na liście danych użytkowników:Django Reszta ramowa: kolej na paginacji na ViewSet (jak ModelViewSet paginacji)
class Foo(viewsets.ViewSet):
def list(self, request):
queryset = User.objects.all()
serializer = UserSerializer(queryset, many=True)
return Response(serializer.data)
chcę włączyć paginacji jak domyślnego paginacji dla ModelViewSet :
{
"count": 55,
"next": "http://myUrl/?page=2",
"previous": null,
"results": [{...},{...},...,{...}]
}
The official doc mówi:
Pagination is only performed automatically if you're using the generic views or viewsets
... ale moja resultset i nie jest w ogóle stronicowana. Jak mogę go paginować?
dodałem 'paginate_by = 10' ale to nie działa. Jeśli zmienię 'class Foo (viewsets.ViewSet):' z 'class Foo (generics.ListCreateAPIView):' Otrzymuję ten błąd: _as_view() przyjmuje dokładnie 1 argument (3 dane) _ – floatingpurr
czy przekazujesz dowolny argument do .as_view()? Po drugie dlaczego nie używasz 'ModelViewSet'? –
Nie, nic do .as_views(). Nie używam 'ModelViewSet', ponieważ muszę zakodować pewną logikę, aby przefiltrować podzbiór mojego' zestawu zapytań' i dodać niektóre dane do zestawu wyników niezwiązanego z modelem użytkownika (ta logika jest pominięta w kodzie mojego pytania) – floatingpurr