Миксины для нескольких объектов

MultipleObjectMixin

класс django.views.generic.list.MultipleObjectMixin

Примесь, которую можно использовать для отображения списка объектов.

Если paginate_byуказано, Django разбивает на страницы результаты, возвращаемые this. Вы можете указать номер страницы в 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

Модель, для которой это представление будет отображать данные. Указание фактически то же самое, с указанием , где выступает за «s менеджера по умолчанию .model = Fooqueryset = Foo.objects.all()objectsFoo

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( набор запросов )

Возвращает количество элементов Noneдля разбивки на страницы или без разбивки на страницы. По умолчанию это возвращает значение paginate_by.

get_paginator( QuerySet , per_page , сироты = 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это набор запросов объектов 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

класс django.views.generic.list.MultipleObjectTemplateResponseMixin

Класс миксина, который выполняет рендеринг ответа на основе шаблона для представлений, которые работают со списком экземпляров объекта. Требуется, чтобы представление, с которым оно смешано, предоставляло self.object_listсписок экземпляров объектов, с которыми оно работает. self.object_listможет быть, но не обязательно, a QuerySet.

Расширяется

Методы и атрибуты

template_name_suffix

Суффикс, добавляемый к автоматически сгенерированному имени шаблона кандидата. Суффикс по умолчанию _list.

get_template_names()

Возвращает список возможных имен шаблонов. Возвращает следующий список:

  • значение template_nameна просмотре (если предусмотрено)
  • <app_label>/<model_name><template_name_suffix>.html

Copyright ©2021 All rights reserved