Multiple object mixins
MultipleObjectMixin
-
class django.views.generic.list.MultipleObjectMixin
-
A mixin that can be used to display a list of objects.
If
paginate_by
is specified, Django will paginate the results returned by this. You can specify the page number in the URL in one of two ways:-
Use the
page
parameter in the URLconf. For example, this is what your URLconf might look like:path('objects/page<int:page>/', PaginatedView.as_view()),
-
Pass the page number via the
page
query-string parameter. For example, a URL would look like this:/objects/?page=3
These values and lists are 1-based, not 0-based, so the first page would be represented as page
1
.For more on pagination, read the pagination documentation.
As a special case, you are also permitted to use
last
as a value forpage
:/objects/?page=last
This allows you to access the final page of results without first having to determine how many pages there are.
Note that
page
must be either a valid page number or the valuelast
; any other value forpage
will result in a 404 error.Extends
Methods and Attributes
-
allow_empty
-
A boolean specifying whether to display the page if no objects are available. If this is
False
and no objects are available, the view will raise a 404 instead of displaying an empty page. By default, this isTrue
.
-
model
-
The model that this view will display data for. Specifying
model = Foo
is effectively the same as specifyingqueryset = Foo.objects.all()
, whereobjects
stands forFoo
’s default manager.
-
queryset
-
A
QuerySet
that represents the objects. If provided, the value ofqueryset
supersedes the value provided formodel
.Warning
queryset
is a class attribute with a mutable value so care must be taken when using it directly. Before using it, either call itsall()
method or retrieve it withget_queryset()
which takes care of the cloning behind the scenes.
-
ordering
-
A string or list of strings specifying the ordering to apply to the
queryset
. Valid values are the same as those fororder_by()
.
-
paginate_by
-
An integer specifying how many objects should be displayed per page. If this is given, the view will paginate objects with
paginate_by
objects per page. The view will expect either apage
query string parameter (viarequest.GET
) or apage
variable specified in the URLconf.
-
paginate_orphans
-
An integer specifying the number of “overflow” objects the last page can contain. This extends the
paginate_by
limit on the last page by up topaginate_orphans
, in order to keep the last page from having a very small number of objects.
-
page_kwarg
-
A string specifying the name to use for the page parameter. The view will expect this parameter to be available either as a query string parameter (via
request.GET
) or as a kwarg variable specified in the URLconf. Defaults topage
.
-
paginator_class
-
The paginator class to be used for pagination. By default,
django.core.paginator.Paginator
is used. If the custom paginator class doesn’t have the same constructor interface asdjango.core.paginator.Paginator
, you will also need to provide an implementation forget_paginator()
.
-
context_object_name
-
Designates the name of the variable to use in the context.
-
get_queryset()
-
Get the list of items for this view. This must be an iterable and may be a queryset (in which queryset-specific behavior will be enabled).
-
get_ordering()
-
Returns a string (or iterable of strings) that defines the ordering that will be applied to the
queryset
.Returns
ordering
by default.
-
paginate_queryset(queryset, page_size)
-
Returns a 4-tuple containing (
paginator
,page
,object_list
,is_paginated
).Constructed by paginating
queryset
into pages of sizepage_size
. If the request contains apage
argument, either as a captured URL argument or as a GET argument,object_list
will correspond to the objects from that page.
-
get_paginate_by(queryset)
-
Returns the number of items to paginate by, or
None
for no pagination. By default this returns the value ofpaginate_by
.
-
get_paginator(queryset, per_page, orphans=0, allow_empty_first_page=True)
-
Returns an instance of the paginator to use for this view. By default, instantiates an instance of
paginator_class
.
-
get_paginate_orphans()
-
An integer specifying the number of “overflow” objects the last page can contain. By default this returns the value of
paginate_orphans
.
-
get_allow_empty()
-
Return a boolean specifying whether to display the page if no objects are available. If this method returns
False
and no objects are available, the view will raise a 404 instead of displaying an empty page. By default, this isTrue
.
-
get_context_object_name(object_list)
-
Return the context variable name that will be used to contain the list of data that this view is manipulating. If
object_list
is a queryset of Django objects andcontext_object_name
is not set, the context name will be themodel_name
of the model that the queryset is composed from, with postfix'_list'
appended. For example, the modelArticle
would have a context object namedarticle_list
.
-
get_context_data(**kwargs)
-
Returns context data for displaying the list of objects.
Context
-
object_list
: The list of objects that this view is displaying. Ifcontext_object_name
is specified, that variable will also be set in the context, with the same value asobject_list
. -
is_paginated
: A boolean representing whether the results are paginated. Specifically, this is set toFalse
if no page size has been specified, or if the available objects do not span multiple pages. -
paginator
: An instance ofdjango.core.paginator.Paginator
. If the page is not paginated, this context variable will beNone
. -
page_obj
: An instance ofdjango.core.paginator.Page
. If the page is not paginated, this context variable will beNone
.
-
MultipleObjectTemplateResponseMixin
-
class django.views.generic.list.MultipleObjectTemplateResponseMixin
-
A mixin class that performs template-based response rendering for views that operate upon a list of object instances. Requires that the view it is mixed with provides
self.object_list
, the list of object instances that the view is operating on.self.object_list
may be, but is not required to be, aQuerySet
.Extends
Methods and Attributes
-
template_name_suffix
-
The suffix to append to the auto-generated candidate template name. Default suffix is
_list
.
-
get_template_names()
-
Returns a list of candidate template names. Returns the following list:
- the value of
template_name
on the view (if provided) <app_label>/<model_name><template_name_suffix>.html
- the value of
-
© 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/