Многообъектные миксины
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не установлен, имя контекста будет именем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
-
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.8/ref/class-based-views/mixins-multiple-object/