Ce sont ma version

Django==3.0.2
djangorestframework==3.11.0

Et c'est mon réglage

REST_FRAMEWORK = {
        'DEFAULT_PERMISSION_CLASSES': [
            'rest_framework.permissions.IsAuthenticated',
        ],
        'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
        'PAGE_SIZE': 10
    }

Et voici mes vues:

class CostList(ListCreateAPIView):
    serializer_class = CostSerializers

    def get_queryset(self):
        cost = Cost.objects.filter(
            id='filtered with one of my id'
        )
        return cost

Voici mon sérialiseur:

class CostSerializers(ModelSerializer):
    class Meta:
        model = Cost
        fields = '__all__'

Tout fonctionne bien mais le seul problème est la pagination. J'ai plus de 100 entrées dans le modèle cost et je vois qu'il rend toutes les entrées ensemble, pas la pagination de l'élément suivant mes paramètres

0
user12551055 10 févr. 2020 à 11:28

1 réponse

Meilleure réponse
class CostList(ListCreateAPIView):
    serializer_class = CostSerializers

    def get_queryset(self):
        cost = Cost.objects.filter(id='filtered with one of my id')
        return cost

    def get(self, request, *args, **kwargs):
        qs = self.get_queryset()
        page = self.paginate_queryset(qs)
        return self.get_paginated_response(page)

Essaye ça.

1
sandeshdaundkar 20 févr. 2020 à 18:51