Почему доступ к page_range отличается в оболочке и шаблоне? - PullRequest
0 голосов
/ 06 апреля 2019

Я совершенно новый в Джанго и в настоящее время изучаю нумерацию страниц.Этот вопрос смутил меня, и мне нужна ваша помощь, чтобы помочь мне понять его.

Чтобы получить доступ к значению page_range в оболочке, я непосредственно набираю pages.page_range, как показано ниже:

>>> from django.core.paginator import Paginator
>>> posts = [1, 2, 3, 4, 5, 6, 7]
>>> pages = Paginator(posts, 2)
>>> pages.page_range  # here
range(1, 5)

, но в шаблоне для доступа к значению page_range нам нужно ввести page_obj.paginator.page_range.

Вопрос в том, почему выдает ошибку, если я получаю доступ к page_range без .paginator посредничества, подобного page_obj.page_range, поскольку в оболочке нам не нужно вводить pages.paginator.page_range?

Пожалуйста, помогите мне понять, что мне здесь не хватает.Спасибо

edit: page_obj имеет ли другое значение, кроме текущей страницы?

1 Ответ

0 голосов
/ 06 апреля 2019

Поскольку page_obj не является экземпляром класса Paginator.Это экземпляр класса Page, с которым связан объект paginator.(См. Источник здесь ).Поэтому, безусловно, вам нужно получить доступ к чему-либо из paginator объекта, подобного этому page_obj.paginator.page_range.

Однако сам объект paginator также передается в контекст (см. Источник здесь ).Вы можете получить к нему доступ напрямую, если хотите так paginator.page_range

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...