Multiple object mixins¶
MultipleObjectMixin¶
-
class
django.views.generic.list.MultipleObjectMixin¶ A mixin that can be used to display a list of objects.
If
paginate_byis 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
pageparameter 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
pagequery-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
lastas 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
pagemust be either a valid page number or the valuelast; any other value forpagewill 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
Falseand 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 = Foois effectively the same as specifyingqueryset = Foo.objects.all(), whereobjectsstands forFoo’s default manager.
-
queryset¶ A
QuerySetthat represents the objects. If provided, the value ofquerysetsupersedes the value provided formodel.Warning
querysetis 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_byobjects per page. The view will expect either apagequery string parameter (viarequest.GET) or apagevariable specified in the URLconf.
-
paginate_orphans¶ An integer specifying the number of “overflow” objects the last page can contain. This extends the
paginate_bylimit 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.Paginatoris 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
orderingby default.
-
paginate_queryset(queryset, page_size)¶ Returns a 4-tuple containing (
paginator,page,object_list,is_paginated).Constructed by paginating
querysetinto pages of sizepage_size. If the request contains apageargument, either as a captured URL argument or as a GET argument,object_listwill correspond to the objects from that page.
-
get_paginate_by(queryset)¶ Returns the number of items to paginate by, or
Nonefor no pagination. By default this simply 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 simply 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
Falseand 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_listis a queryset of Django objects andcontext_object_nameis not set, the context name will be themodel_nameof the model that the queryset is composed from, with postfix'_list'appended. For example, the modelArticlewould 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_nameis 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 toFalseif 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_listmay 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_nameon the view (if provided) <app_label>/<model_name><template_name_suffix>.html
- the value of
-