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