Миксины для нескольких объектов ¶
MultipleObjectMixin
¶
-
класс
django.views.generic.list.
MultipleObjectMixin
¶ Примесь, которую можно использовать для отображения списка объектов.
Если
paginate_by
указано, Django разбивает на страницы результаты, возвращаемые this. Вы можете указать номер страницы в URL-адресе одним из двух способов:Используйте
page
параметр в URLconf. Например, вот как может выглядеть ваш URLconf:path('objects/page<int:page>/', PaginatedView.as_view()),
Передайте номер страницы через
page
параметр строки запроса. Например, URL-адрес будет выглядеть так:/objects/?page=3
Эти значения и списки начинаются с 1, а не с 0, поэтому первая страница будет представлена как страница
1
.Подробнее о разбивке на страницы читайте в документации по разбивке на страницы .
В качестве особого случая вам также разрешено использовать
last
в качестве значения дляpage
:/objects/?page=last
Это позволяет получить доступ к последней странице результатов без предварительного определения количества страниц.
Обратите внимание, что это
page
должен быть действительный номер страницы или значениеlast
; любое другое значениеpage
приведет к ошибке 404.Расширяется
Методы и атрибуты
-
allow_empty
¶ Логическое значение, указывающее, следует ли отображать страницу, если объекты недоступны. Если это так
False
и объекты недоступны, представление будет выдавать 404 вместо отображения пустой страницы. По умолчанию этоTrue
.
-
model
¶ Модель, для которой это представление будет отображать данные. Указание фактически то же самое, с указанием , где выступает за «s менеджера по умолчанию .
model = Foo
queryset = Foo.objects.all()
objects
Foo
-
queryset
¶ QuerySet
, Который представляет объекты. Если предоставлено, значениеqueryset
заменяет указанноеmodel
.Предупреждение
queryset
- это атрибут класса с изменяемым значением, поэтому при его прямом использовании необходимо соблюдать осторожность. Перед его использованием либо вызовите егоall()
метод, либо получите его,get_queryset()
который позаботится о клонировании за кулисами.
-
ordering
¶ Строка или список строк, определяющий порядок применения к
queryset
. Допустимые значения такие же, как и дляorder_by()
.
-
paginate_by
¶ Целое число, указывающее, сколько объектов должно отображаться на странице. Если это задано, представление будет разбивать
paginate_by
объекты на страницы с объектами на странице. Представление будет ожидать либоpage
параметр строки запроса (черезrequest.GET
), либоpage
переменную, указанную в URLconf.
-
paginate_orphans
¶ Целое число, определяющее количество объектов «переполнения», которые может содержать последняя страница. Это увеличивает
paginate_by
ограничение на последнюю страницу доpaginate_orphans
, чтобы на последней странице не было очень маленького количества объектов.
-
page_kwarg
¶ Строка, определяющая имя, которое будет использоваться для параметра страницы. Представление ожидает, что этот параметр будет доступен либо как параметр строки запроса (через
request.GET
), либо как переменная kwarg, указанная в URLconf. По умолчаниюpage
.
-
paginator_class
¶ Класс разбиения на страницы, который будет использоваться для разбивки на страницы. По умолчанию
django.core.paginator.Paginator
используется. Если пользовательский класс пагинатора не имеет того же интерфейса конструктора, что иdjango.core.paginator.Paginator
, вам также необходимо предоставить реализацию дляget_paginator()
.
-
context_object_name
¶ Обозначает имя переменной для использования в контексте.
-
get_queryset
() ¶ Получите список элементов для этого представления. Это должно быть итеративным и может быть набором запросов (в котором будет разрешено поведение, зависящее от набора запросов).
-
get_ordering
() ¶ Возвращает строку (или итерацию строк), определяющую порядок, который будет применен к
queryset
.Возврат
ordering
по умолчанию.
-
paginate_queryset
( QuerySet , PAGE_SIZE ) ¶ Возвращает 4-кортеж , содержащий (
paginator
,page
,object_list
,is_paginated
).Создается путем разбивки
queryset
на страницы по размеруpage_size
. Если запрос содержитpage
аргумент, либо как захваченный аргумент URL, либо как аргумент GET, онobject_list
будет соответствовать объектам с этой страницы.
-
get_paginate_by
( набор запросов ) ¶ Возвращает количество элементов
None
для разбивки на страницы или без разбивки на страницы. По умолчанию это возвращает значениеpaginate_by
.
-
get_paginator
( QuerySet , per_page , сироты = 0 , allow_empty_first_page = True ) ¶ Возвращает экземпляр разбиения на страницы для использования в этом представлении. По умолчанию создает экземпляр
paginator_class
.
-
get_paginate_orphans
() ¶ Целое число, определяющее количество объектов «переполнения», которые может содержать последняя страница. По умолчанию это возвращает значение
paginate_orphans
.
-
get_allow_empty
() ¶ Вернуть логическое значение, определяющее, отображать ли страницу, если объекты недоступны. Если этот метод возвращается,
False
а объекты недоступны, представление выдаст 404 вместо отображения пустой страницы. По умолчанию этоTrue
.
-
get_context_object_name
( список_объектов ) ¶ Верните имя переменной контекста, которая будет использоваться для хранения списка данных, которыми управляет это представление. Если
object_list
это набор запросов объектов Django иcontext_object_name
не задан, имя контекста будет соответствоватьmodel_name
модели, из которой состоит набор запросов, с'_list'
добавленным постфиксом . Например, у моделиArticle
будет объект контекста с именемarticle_list
.
-
get_context_data
( ** kwargs ) ¶ Возвращает контекстные данные для отображения списка объектов.
Контекст
object_list
: Список объектов, отображаемых в этом представлении. Еслиcontext_object_name
указано, эта переменная также будет установлена в контексте с тем же значением, что иobject_list
.is_paginated
: Логическое значение, указывающее, разбиты ли результаты на страницы. В частности, это устанавливается,False
если размер страницы не указан или доступные объекты не охватывают несколько страниц.paginator
: Экземплярdjango.core.paginator.Paginator
. Если страница не разбита на страницы, эта переменная контекста будетNone
.page_obj
: Экземплярdjango.core.paginator.Page
. Если страница не разбита на страницы, эта переменная контекста будетNone
.
MultipleObjectTemplateResponseMixin
¶
-
класс
django.views.generic.list.
MultipleObjectTemplateResponseMixin
¶ Класс миксина, который выполняет рендеринг ответа на основе шаблона для представлений, которые работают со списком экземпляров объекта. Требуется, чтобы представление, с которым оно смешано, предоставляло
self.object_list
список экземпляров объектов, с которыми оно работает.self.object_list
может быть, но не обязательно, aQuerySet
.Расширяется
Методы и атрибуты
-
template_name_suffix
¶ Суффикс, добавляемый к автоматически сгенерированному имени шаблона кандидата. Суффикс по умолчанию
_list
.
-
get_template_names
() ¶ Возвращает список возможных имен шаблонов. Возвращает следующий список:
- значение
template_name
на просмотре (если предусмотрено) <app_label>/<model_name><template_name_suffix>.html
- значение
-