Смеси для отображения нескольких объектов
MultipleObjectMixin
-
class django.views.generic.list.MultipleObjectMixin -
Смесь, используемая для отображения списка объектов.
Если
paginate_byуказано, Django будет странировать полученные результаты. Вы можете указать номер страницы в URL двумя способами:-
Используйте параметр
pageв URLconf. Например, ваш URLconf может выглядеть так:url(r'^objects/page(?P<page>[0-9]+)/$', 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) или в качестве переменной, указанной в 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/1.10/ref/class-based-views/mixins-multiple-object/