多个对象混合¶
MultipleObjectMixin
¶
-
class
django.views.generic.list.
MultipleObjectMixin
¶ 一个可用于显示对象列表的mixin。
如果指定了
paginate_by
,Django将对由此返回的结果进行分页。您可以通过以下两种方法之一在网址中指定页码:在URLconf中使用
page
参数。例如,这是您的URLconf可能是什么样子:url(r'^objects/page(?P<page>[0-9]+)/$', PaginatedView.as_view()),
通过
page
查询字符串参数传递页码。例如,一个URL看起来像这样:/objects/?page=3
这些值和列表是基于1的,而不是基于0的,因此第一页将被表示为页
1
。有关分页的更多信息,请阅读 分页文档。
作为特殊情况,您还可以使用
last
作为page
的值:/objects/?page=last
这允许您访问结果的最后一页,而无需首先确定有多少页。
注意,
page
must 是有效的页码或值last
;page
的任何其他值将导致404错误。扩展
方法和属性
-
allow_empty
¶ 一个布尔值,指定如果没有对象可用,是否显示页面。如果这是
False
并且没有可用的对象,视图将引发404而不是显示空页面。默认情况下,这是True
。
-
queryset
¶ 表示对象的
QuerySet
。如果提供,queryset
的值将取代为model
提供的值。警告
queryset
是具有 mutable 值的类属性,因此在直接使用它时必须小心。在使用它之前,要么调用其all()
方法,要么使用get_queryset()
检索它,后者会在后台进行克隆。
-
ordering
¶ 字符串或字符串列表,指定要应用于
queryset
的顺序。有效值与order_by()
的有效值相同。
-
paginate_by
¶ 一个整数,指定每页应显示多少个对象。如果给出了这个选项,那么视图将按页面将对象与
paginate_by
对象分页。该视图将期望page
查询字符串参数(通过request.GET
)或在URLconf中指定的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)¶ 返回包含(
paginator
,page
,object_list
,is_paginated
)的4元组。构造由分页
queryset
到page_size
大小的页面。如果请求包含page
参数,作为捕获的URL参数或作为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
并且没有对象可用,则视图将引发404而不是显示空页面。默认情况下,这是True
。
-
get_context_object_name
(object_list)¶ 返回将用于包含此视图正在操作的数据列表的上下文变量名称。如果
object_list
是Django对象的查询集,并且context_object_name
未设置,则上下文名称将是该查询集所构成的模型的model_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
¶
-
class
django.views.generic.list.
MultipleObjectTemplateResponseMixin
¶ 一个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
-