Используйте django нумерацию страниц с запросом SQL и без ORM - PullRequest
0 голосов
/ 25 сентября 2019

Я знаю, как использовать django-нумерацию страниц с ORM django после фильтрации необходимых данных и ввода в div нумерации страниц

queryset_list = employee.objects.all()
query=request.GET.get("q")
        if query:
            queryset_list=queryset_list.filter(
              Q(name__icontains=query)|
              Q(father_name__icontains=query)|
              Q(mother_name__icontains=query)|
              Q(content__icontains=query)|
              Q(create_date__icontains=query)
              # Q(user__first_name__contains=query)
            ).distinct()


        paginator = Paginator(queryset_list, 5)
        page_request_var = "page"
        page = request.GET.get(page_request_var)
        queryset = paginator.get_page(page)

        context={
            "object_list":queryset,
            "title":"List Items",
            "page_request_var":page_request_var,
        }
        return render(request,"blog/list.html", context)

Приведенный выше код работает

Мой вопрос заключается в том, как преобразоватьэтот ORM в сырой SQL

Я знаю, что я должен использовать LIMIT и OFFSET в сыром SQL для встраивания в paginator.

1 Ответ

0 голосов
/ 25 сентября 2019

Печать queryset_list.query это даст вам сырой sql вы хотите.В качестве альтернативы вы можете применить нарезку для смещения предела.Набор запросов Django ленивый оценить, что вы можете сделать queryset_list[start:stop] без сырых sql.

...