MultipleObjectMixin
¶django.views.generic.list.
MultipleObjectMixin
¶可用于显示对象列表的mixin。
如果指定paginate_by
,Django将对由此返回的结果进行分页。 您可以通过以下两种方法之一在URL中指定页码:
使用URLconf中的page
参数。 例如,这是您的URLconf可能是什么样子:
url(r'^objects/page(?P<page>[0-9]+)/$', PaginatedView.as_view()),
通过page
query-string参数传递页码。 例如,网址如下所示:
/objects/?page=3
这些值和列表是基于1的,而不是基于0的,因此第一页将表示为页1
。
有关分页的更多信息,请阅读pagination documentation。
作为特殊情况,您还可以使用last
作为page
的值:
/objects/?page=last
这允许您访问结果的最后一页,而不必先确定有多少页。
请注意,last
必须是有效的页码或值page
; page
的任何其他值将导致404错误。
扩展
方法和属性
allow_empty
¶一个布尔值,指定如果没有对象可用,是否显示页面。 如果这是False
,没有可用的对象,视图将引发404而不是显示一个空页面。 默认情况下,这是True
。
model
¶此视图将显示数据的模型。 Specifying model
= Foo
is effectively the same as specifying queryset =
Foo.objects.all()
, where objects
stands for Foo
’s
default manager.
queryset
¶表示对象的QuerySet
。 如果提供,queryset
的值将取代为model
提供的值。
警告
queryset
是具有可变值的类属性,因此在直接使用它时必须小心。 在使用它之前,要么调用all()
方法,要么使用get_queryset()
来检索它,它会处理幕后的克隆。
ordering
¶指定应用于queryset
的顺序的字符串或字符串列表。
有效值与order_by()
的值相同。
paginate_by
¶一个整数,指定每页应显示多少个对象。 如果指定,则视图将使用paginate_by
个对象每页分页对象。 该视图将期望在URLconf中指定的request.GET
查询字符串参数(通过page
)或page
变量。
paginate_orphans
¶一个整数,指定最后一页可以包含的“overflow”对象的数量。 这会将最后一页上的paginate_by
限制扩展到paginate_orphans
,为了防止最后一页的对象数量过少。
page_kwarg
¶指定用于页面参数的名称的字符串。
视图将期望此参数可作为查询字符串参数(通过request.GET
)或作为在URLconf中指定的kwarg变量。 默认为page
。
paginator_class
¶paginator类用于分页。 默认情况下,使用django.core.paginator.Paginator
。 如果自定义paginator类与django.core.paginator.Paginator
没有相同的构造函数接口,则还需要为get_paginator()
提供实现。
context_object_name
¶指定要在上下文中使用的变量的名称。
get_queryset
()¶获取此视图的项目列表。 这必须是可迭代的,并且可以是查询集(其中将启用查询集特定的行为)。
paginate_queryset
(queryset, page_size)¶返回包含(page
,object_list
,is_paginated
,paginator
)的4元组。
通过将queryset
分页成大小为page_size
的页面而构造。
如果请求包含page
参数(作为捕获的网址参数或GET参数),则object_list
将对应于该网页中的对象。
get_paginate_by
(queryset)¶返回要分页的项目数,或None
表示无分页。 默认情况下,这只返回paginate_by
的值。
get_paginator
(queryset, per_page, orphans=0, allow_empty_first_page=True)¶返回要用于此视图的分页器的实例。 默认情况下,实例化paginator_class
的实例。
get_paginate_orphans
()¶一个整数,指定最后一页可以包含的“overflow”对象的数量。 默认情况下,这只返回paginate_orphans
的值。
get_allow_empty
()¶返回一个布尔值,指定如果没有对象可用,是否显示页面。 如果此方法返回False
默认情况下,这是True
。
get_context_object_name
(object_list)¶返回将用于包含此视图正在操作的数据列表的上下文变量名称。 如果object_list
是Django对象的查询集,并且未设置context_object_name
,则上下文名称将是构成查询集的模型的model_name
from,后缀'_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 T0> ¶ T1>
一个mixin类,对基于对象实例列表操作的视图执行基于模板的响应呈现。 需要与其混合的视图提供self.object_list
,视图操作的对象实例的列表。 self.object_list
可以是但不是必须是QuerySet
。
扩展
方法和属性
template_name_suffix
¶附加到自动生成的候选模板名称的后缀。
默认后缀为_list
。
get_template_names
()¶返回候选模板名称的列表。 返回以下列表:
template_name
值(如果提供)<app_label>/<model_name><template_name_suffix>.html
2017年9月6日