Многообъектные миксины
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 -
Mixin-класс, выполняющий рендеринг ответа на основе шаблона для представлений, работающих со списком экземпляров объектов. Требует, чтобы представление, к которому он применён, предоставляло
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/4.2/ref/class-based-views/mixins-multiple-object/