Множественные миксины объектов
MultipleObjectMixin
-
class django.views.generic.list.MultipleObjectMixin -
Миксин, который может быть использован для отображения списка объектов.
Если
paginate_byуказан, Django будет выполнять постраничный вывод результатов, возвращаемых этим объектом. Вы можете указать номер страницы в 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 -
Модель, для которой это представление будет отображать данные. Указание
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(queryset) -
Возвращает количество элементов для постраничного вывода или
None, если постраничный вывод не требуется. По умолчанию, это значениеpaginate_by.
-
get_paginator(queryset, per_page, orphans=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) -
Возвращает имя контекстной переменной, которая будет использоваться для хранения списка данных, с которыми работает это представление. Если
object_list— это набор запросов Django-объектов, аcontext_object_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
-
class django.views.generic.list.MultipleObjectTemplateResponseMixin -
Класс-миксин, который выполняет рендеринг ответа на основе шаблона для представлений, работающих со списком экземпляров объектов. Требует, чтобы представление, к которому он применим, предоставляло
self.object_list, список экземпляров объектов, над которыми работает представление.self.object_listможет быть, но не обязательно должен быть,QuerySet.Расширяет
Методы и атрибуты
-
template_name_suffix -
Суффикс, добавляемый к автоматически сгенерированному кандидату имени шаблона. По умолчанию суффикс
_list.
-
get_template_names() -
Возвращает список кандидатов имен шаблонов. Возвращает следующий список:
- значение
template_nameв представлении (если указано) <app_label>/<model_name><template_name_suffix>.html
- значение
-
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/5.1/ref/class-based-views/mixins-multiple-object/