多对象混入¶
MultipleObjectMixin¶
- 
class django.views.generic.list.MultipleObjectMixin¶
- 一个可以用来显示对象列表的混入。 - 如果指定了 - paginate_by,Django 会对返回的结果进行分页。你可以用两种方式之一在 URL 中指定页码。- 在 URLconf 中使用 - page参数。例如,你的 URLconf 可能是这样的:- path("objects/page<int:page>/", PaginatedView.as_view()), 
- 通过 - page查询字符串参数传递页码。例如,URL 可以如下所示:- /objects/?page=3 
 - 这些数值和列表是以 1 为基础的,而不是以 0 为基础的,所以第一页将表示为 - 1页。- 更多关于分页的内容,请阅读 分页文档。 - 作为特殊情况,你也可以将 - page的值设为- last:- /objects/?page=last - 这允许你访问结果的最后一页,而不必首先确定有多少页。 - 请注意, - page必须 是有效的页码或- last值;- page的任何其他值将导致 404 错误。- 扩展 - **方法和属性* - 
allow_empty¶
- 一个布尔值,用于指定是否在没有对象的情况下显示页面。如果这个值是 - False,并且没有可用的对象,视图将提出一个 404,而不是显示一个空的页面。默认情况下,这是- True。
 - 
model¶
- 该视图将显示数据的模型。指定 - model = Foo实际上等于指定- queryset = Foo.objects.all(),其中- objects代表 ``Foo``的 默认管理器。
 - 
queryset¶
- 代表对象的 - QuerySet。如果提供,- queryset的值将取代为- model提供的值。- 警告 - queryset是一个类属性,它的值是 可变的,所以直接使用它时一定要注意。在使用它之前,要么调用它的- all()方法,要么用- get_queryset()检索它,它在幕后负责克隆。
 - 
ordering¶
- 一个字符串或字符串列表,指定应用于 - queryset的顺序。有效值与- order_by()的值相同。
 - 
paginate_by¶
- 一个整数,指定每页应显示多少对象。如果给定了这个值,视图将用 - paginate_by对象分页。视图将期待一个- page查询字符串参数(通过- request.GET)或一个在 URLconf 中指定的- page变量。
 - 
paginate_orphans¶
- 一个整数,指定最后一页可以包含的”溢出“对象的数量。这扩展了 - paginate_by对最后一页的限制,最多可扩展到- paginate_orphans,以防止最后一页的对象数量非常少。
 - 
page_kwarg¶
- 一个字符串,用于指定页面参数的名称。视图希望该参数可以作为查询字符串参数(通过 - request.GET)或作为 URLconf 中指定的 kwarg 变量。默认为- page。
 - 
paginator_class¶
- 用于分页的 paginator 类。默认情况下,使用 - django.core.paginator.Paginator。如果自定义的分页器类没有和- django.core.paginator.Paginator一样的构造函数接口,你还需要为- get_paginator()提供一个实现。
 - 
context_object_name¶
- 指定在上下文中使用的变量名称。 
 - 
get_queryset()¶
- 获取此视图的项目列表。这必须是一个可迭代对象,也可以是一个查询集(查询集特定行为将被启用)。 
 - 
paginate_queryset(queryset, page_size)¶
- 返回一个包含 ( - paginator,- page,- object_list,- is_paginated) 的四元元组。- 通过将 - 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()¶
- 一个整数,指定最后一页可以包含的”溢出“对象的数量。默认情况下,返回 - 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¶
- 一个混入类,为对对象实例列表进行操作的视图执行基于模板的响应渲染。要求与之混入的视图提供 - self.object_list,即该视图操作的对象实例列表。- self.object_list可以是,但不要求是:- QuerySet。- 扩展 - **方法和属性* - 
template_name_suffix¶
- 自动生成的候选模板名称的后缀。默认后缀是 - _list。
 - 
get_template_names()¶
- 返回候选模板名称的列表。返回以下列表: - 视图中 template_name的值(如果提供)
- <app_label>/<model_name><template_name_suffix>.html
 
- 视图中 
 
- 
 
          