как сделать разбивку на страницы для этого представления

#django #django-rest-framework

Вопрос:

Я не могу выполнить разбиение на страницы для этого запроса get! Кто-нибудь может мне помочь, пожалуйста. Я пытаюсь сделать это в рамках Django Rest.

 @api_view(["GET"])
def school_titul_list(request):
    if request.method == 'GET':
        try:
            data = {}
            user = request.user
            schools = user_utils.user_schools(user)

            data['warning'] = False

            if user.is_superuser:
                snippets = models.SchoolTitulHead.objects.filter(school__nash=True)

                if 'school' in request.query_params:
                    snippets = snippets.filter(school_id__in=request.query_params['school'].split(','))
                else:
                    snippets = snippets.filter(school_id__in=[])
            else:
                snippets = models.SchoolTitulHead.objects.filter(school__in=schools.values_list('school', flat=True),
                                                                 deleted=False)

            snippets = snippets.order_by('deleted',
                                         '-year',
                                         'klass',
                                         'liter_id').select_related('school',
                                                                    'kurator',
                                                                    'kurator__portfolio')

            work_places = p_models.PortfolioWorkTimeLine.objects.filter(current=True,
                                                                        portfolio__deleted=False,
                                                                        deleted=False,
                                                                        checked=True, )
            # if not request.user.is_superuser:
            work_places = work_places.filter(school__in=schools.values_list('school',
                                                                            flat=True))

            work_places = work_places.values_list('portfolio', flat=True)

            portfolios = p_models.Portfolio.objects.filter(pk__in=work_places).distinct().order_by('name_ru')
            data['users'] = serializers.PortfolioSerializers(portfolios, many=True).data
            data['liters'] = serializers.LiterSerializers(Liter.objects.filter(deleted=False), many=True).data
            data['data'] = serializers.GetHeadSchoolTitulSerializer(snippets, many=True).data
            data['languages'] = serializers.LanguageSerializer(p_models.Language.objects.filter(deleted=False),
                                                               many=True).data
            data['studyDirections'] = serializers.StudyDirectionsSerializer(
                StudyDirections.objects.filter(deleted=False), many=True).data
            data['klasss'] = serializers.KlassSerializersID(p_models.Klass.objects.filter(deleted=False, klass_type=2),
                                                            many=True).data
            data['datas'] = serializers.DateObjectsSerializer(
                p_models.DateObjects.objects.filter(deleted=False, id=9).order_by('id'), many=True).data
            return JsonResponse(data)

        except AccessToEdit.DoesNotExist:
            return JsonResponse({'errors': 'Нет доступа', 'warning': 0}, status=400)
 

Комментарии:

1. Не могли бы вы уточнить can't do pagination …?? Что вы все перепробовали…?? Вы получаете какие-либо ошибки…?? Или после применения разбиения на страницы вы не получаете ответ с разбиением на страницы…??

2. @ShivendraPratapKushwaha Я не в состоянии справиться с этой проблемой. Я понятия не имею, как это решить.

3. Вместо ответа Json сделайте это, как указано в структуре django rest. Это неправильный способ создания API. В Django rest также есть документы для разбиения на страницы.