多对象混合

MultipleObjectMixin

class django.views.generic.list.MultipleObjectMixin

可用于显示对象列表的混音器。

如果 paginate_by 如果指定,Django将对由此返回的结果分页。可以通过以下两种方式之一在URL中指定页码:

  • 使用 page urlconf中的参数。例如,这就是您的URLCONF的样子:

    path("objects/page<int:page>/", PaginatedView.as_view()),
    
  • 方法传递页码。 page 查询字符串参数。例如,URL如下所示:

    /objects/?page=3
    

这些值和列表是基于1的,而不是基于0的,因此第一页将表示为页 1 .

有关分页的更多信息,请阅读 pagination documentation .

作为特例,您还可以使用 last 作为的值 page

/objects/?page=last

这允许您访问结果的最后一页,而不必首先确定有多少页。

注意 page must 是有效的页码或值 last ;任何其他价值 page 将导致404错误。

Extends

方法和属性

allow_empty

一个布尔值,指定在没有对象可用时是否显示页面。如果这是 False 并且没有可用的对象,视图将引发404而不是显示空页面。默认情况下,这是 True .

model

此视图将为其显示数据的模型。指定 model = Foo 实际上与指定 queryset = Foo.objects.all() 在哪里 objects 代表 Foodefault manager .

queryset

A QuerySet 表示对象的。如果提供,则 queryset 取代为提供的值 model .

警告

queryset 是具有 易变的 因此,直接使用时必须小心。在使用它之前,请先调用它 all() 方法或检索 get_queryset() 它负责幕后的复制。

ordering

一个字符串或字符串列表,指定应用于 queryset . 有效值与 order_by() .

paginate_by

一个整数,指定每页应显示多少对象。如果提供了此选项,视图将使用 paginate_by 每页对象数。视图将期望 page 查询字符串参数(通过 request.GET 或A page 在urlconf中指定的变量。

paginate_orphans

指定最后一页可以包含的“溢出”对象数的整数。这扩展了 paginate_by 最后一页最多限制为 paginate_orphans ,以防止最后一页的对象数量非常少。

page_kwarg

指定要用于页参数的名称的字符串。视图将期望此参数作为查询字符串参数(通过 request.GET )或者作为URLCONF中指定的Kwarg变量。默认为 page .

paginator_class

要用于分页的分页器类。默认情况下, django.core.paginator.Paginator 使用。如果自定义paginator类与 django.core.paginator.Paginator ,您还需要为 get_paginator() .

context_object_name

指定要在上下文中使用的变量的名称。

get_queryset()

获取此视图的项目列表。这必须是一个iterable,并且可以是一个queryset(其中将启用queryset特定的行为)。

get_ordering()

返回一个字符串(或字符串的iterable),该字符串定义将应用于 queryset .

返回 ordering 默认情况下。

paginate_queryset(queryset, page_size)

返回包含 (paginatorpageobject_listis_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)

返回用于显示对象列表的上下文数据。

Context

  • 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 .

Extends

方法和属性

template_name_suffix

要附加到自动生成的候选模板名称的后缀。默认后缀为 _list .

get_template_names()

返回候选模板名称列表。返回以下列表:

  • 价值 template_name 在视图上(如果提供)

  • <app_label>/<model_name><template_name_suffix>.html