Классы миксинов для нескольких объектов ¶
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
(parrequest.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
- значение
-