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

MultipleObjectMixin

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

Класс миксина, который можно использовать для отображения списка объектов.

Если paginate_by указано, Django разбивает на страницы результаты, возвращаемые представлением. Указать номер страницы в URL-адресе можно двумя способами:

  • Использование параметра page в конфигурации URL. Например, вот как может выглядеть конфигурация URL:

    path('objects/page<int:page>/', PaginatedView.as_view()),
    
  • Передача номера страницы в качестве параметра в строке запроса URL. Например, URL-адрес может выглядеть так:

    /objects/?page=3
    

Эти списки и значения индексируются с 1, а не с 0, поэтому первая страница представлена ​​страницей 1 .

Для получения дополнительной информации о разбиении на страницы прочтите документацию по разбивке на страницы .

В качестве особого случая также разрешено использовать last (last) в качестве значения переменной page :

/objects/?page=last

Это позволяет перейти к последней странице результатов без предварительного определения общего количества страниц.

Обратите внимание, что page должен содержать действительный номер страницы или значение last ; любое другое значение, переданное в, page вызывает ошибку 404.

Расширяет

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

allow_empty

Логическое значение, указывающее, отображать ли страницу при отсутствии доступных объектов. Если установлено значение False и объект недоступен, представление генерирует ошибку 404 вместо отображения пустой страницы. По умолчанию это True .

model

Модель, для которой это представление будет отображать данные. Enter - это то же самое, что определить, где находится обработчик по умолчанию .model = Foo queryset = Foo.objects.all() objects Foo

queryset

Объект, QuerySet представляющий объекты. При вводе значение queryset перезаписывает указанное значение model .

Предупреждение

queryset - это атрибут класса с редактируемым значением , поэтому вы должны быть очень осторожны при его прямом использовании. Прежде чем использовать его, вызовите его метод all() или заставьте его выполнить get_queryset() клонирование фона.

ordering

Строка или список строк, указывающий порядок сортировки, к которому нужно применить queryset . Возможные значения такие же, как для order_by() .

paginate_by

Целое число, указывающее, сколько объектов должно отображаться на странице. Когда это значение присутствует, представление разбивает объекты paginate_by на страницы с объектами на странице. Представление ожидает, что либо строка запроса URL-адреса содержит параметр page (par request.GET ), либо переменная page была определена в конфигурации URL-адреса.

paginate_orphans

Целое число, указывающее количество дополнительных объектов, которые может содержать последняя страница. Это значение добавляется к счетчику paginate_by последней страницы, чтобы на последней странице не было очень маленького количества объектов.

page_kwarg

Строка, указывающая имя, используемое для параметра страницы. Представление ожидает присутствия этого параметра либо как параметр строки запроса URL (через request.GET ), либо как именованную переменную, присутствующую в конфигурации URL. По умолчанию это 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 не определен, имя контекста будет соответствовать имени модели объектов, содержащихся в наборе запроса, с добавленным суффиксом '_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 может быть объектом QuerySet , но это не обязательно.

Расширяет

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

template_name_suffix

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

get_template_names()

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

  • значение template_name представления (если определено)
  • <nom_app>/<nom_modèle><suffixe_gabarit>.html

Copyright ©2021 All rights reserved