Многообъектные миксины
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) или как переменная 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/1.11/ref/class-based-views/mixins-multiple-object/