Как получить ограниченные результаты на страницу в django, используя нумерацию страниц? - PullRequest
0 голосов
/ 06 апреля 2020

Я иду по курсу удеми, где создаю сайт по недвижимости, используя Django Я зашел так далеко и боролся с ошибками, но я застрял с ошибкой нумерации страниц, с которой я сталкиваюсь сейчас.

Я вижу, что все отлично работает в видео, но когда я следую за ним точно, это не работает. Проблема в том, что, когда я устанавливаю ограничение на количество элементов на странице, оно не работает, поскольку я вижу все результаты на одной странице.

Вот мой views.py

from django.shortcuts import render
from django.core.paginator import Paginator
from .models import Listing

def index(request):
    listings = Listing.objects.all().order_by('-id')

    paginator = Paginator(listings, 3)

    page_number = request.GET.get('page')
    page_obj = paginator.get_page(page_number)
    context = {
        'listings': listings
    }
    return render(request, 'listings/listings.html', context)

Это мой Urls.py

from django.urls import path
from . import views


urlpatterns = [
    path('', views.index, name='listings'),
    path('<int:listings_id>', views.listing, name='listing'),
    path('search', views.search, name='search')

Как вы можете видеть, я установил максимум 3 списка на страницу, но я получаю их все на одной странице, которая не что я хочу. Было бы здорово, если бы кто-нибудь мог помочь. Спасибо за ваше время и усилия.

1 Ответ

2 голосов
/ 06 апреля 2020

Вы возвращаете целые списки вместо страницы Paginator внутри контекста

context = {
    'listings': page_obj
}

Более подробную информацию о нумерации страниц вы можете проверить также в документации

...