MultipleObjectMixin

class django.views.generic.list.MultipleObjectMixin

Un mixin que se puede utilizar para mostrar una lista de objetos.

Si paginate_by se especifica, Django paginará los resultados devueltos por este. Puede especificar el número de página en la URL de una de estas dos formas:

  • Utilizar el page parámetro en la URLconf. Por ejemplo, así es como podría verse su URLconf:

    path('objects/page/', PaginatedView.as_view()),
  • Pase el número de página a través del page consulta-string parámetro. Por ejemplo, una URL se vería así:

    /objects/?page=3

Estos valores y listas se basan en 1, no en 0, por lo que la primera página se representaría como página 1.

Para obtener más información sobre la paginación, lea el documentación de paginación.

Como caso especial, también se le permite usar last como un valor para page:

/objects/?page=last

Esto le permite acceder a la página final de resultados sin tener que determinar primero cuántas páginas hay.

Tenga en cuenta que pagedebe ser un número de página válido o el valor last; cualquier otro valor para page resultará en un error 404.

Se extiende

  • django.views.generic.base.ContextMixin

Métodos y atributos

allow_empty

Un valor booleano que especifica si se muestra la página si no hay objetos disponibles. Si esto es False y no hay objetos disponibles, la vista generará un 404 en lugar de mostrar una página vacía. Por defecto, esto es True.

model

El modelo para el que esta vista mostrará datos. Especificando model
= Foo
es efectivamente lo mismo que especificar queryset =
Foo.objects.all()
, dónde objects representa Foo‘s administrador predeterminado.

queryset

A QuerySet que representa los objetos. Si se proporciona, el valor de queryset reemplaza el valor proporcionado para model.

Advertencia

queryset es una clase attribute con un mudable valor, por lo que se debe tener cuidado al usarlo directamente. Antes de usarlo, llame a su all() método o recuperarlo con get_queryset() que se encarga de la clonación entre bastidores.

ordering

A string o lista de cadenas que especifican el orden que se aplicará al queryset. Los valores válidos son los mismos que los de order_by().

paginate_by

Un número entero que especifica cuántos objetos deben mostrarse por página. Si se da esto, la vista paginará los objetos con paginate_by objetos por página. La vista esperará un page consulta string parámetro (a través de request.GET) o un page variable especificada en la URLconf.

paginate_orphans

Un número entero que especifica el número de objetos de “desbordamiento” que puede contener la última página. Esto extiende el paginate_by límite en la última página hasta paginate_orphans, para evitar que la última página tenga un número muy reducido de objetos.

page_kwarg

A string especificando el nombre que se utilizará para el parámetro de página. La vista esperará que este parámetro esté disponible como una consulta string parámetro (a través de request.GET) o como una variable kwarg especificada en URLconf. Predeterminado a page.

paginator_class

La clase de paginador que se utilizará para la paginación. Por defecto, django.core.paginator.Paginator se utiliza. Si la clase de paginador personalizado no tiene la misma interfaz de constructor que django.core.paginator.Paginator, también deberá proporcionar una implementación para get_paginator().

context_object_name

Designa el nombre de la variable que se utilizará en el contexto.

get_queryset()

Obtenga la lista de elementos para esta vista. Debe ser iterable y puede ser un conjunto de consultas (en el que se habilitará el comportamiento específico del conjunto de consultas).

get_ordering()

Devuelve un string (o iterable de cadenas) que define el orden que se aplicará al queryset.

Devoluciones ordering por defecto.

paginate_queryset(queryset, page_size)

Devuelve una tupla de 4 que contiene (paginator, page, object_list, is_paginated).

Construido paginando queryset en páginas de tamaño page_size. Si la solicitud contiene un page argumento, ya sea como un argumento de URL capturado o como un argumento GET, object_list corresponderá a los objetos de esa página.

get_paginate_by(queryset)

Devuelve el número de elementos por paginar, o None sin paginación. De forma predeterminada, esto devuelve el valor de paginate_by.

get_paginator(queryset, per_page, orphans=0, allow_empty_first_page=True)

Devuelve una instancia del paginador para usar en esta vista. De forma predeterminada, crea una instancia de paginator_class.

get_paginate_orphans()

Un número entero que especifica el número de objetos de “desbordamiento” que puede contener la última página. De forma predeterminada, esto devuelve el valor de paginate_orphans.

get_allow_empty()

Devuelve un valor booleano que especifica si se muestra la página si no hay objetos disponibles. Si este método regresa False y no hay objetos disponibles, la vista generará un 404 en lugar de mostrar una página vacía. Por defecto, esto es True.

get_context_object_name(object_list)

Devuelve el nombre de la variable de contexto que se utilizará para contener la lista de datos que esta vista está manipulando. Si object_list es un conjunto de consultas de objetos Django y context_object_name no está configurado, el nombre del contexto será el model_name del modelo del que está compuesto el conjunto de consultas, con sufijo '_list' adjunto. Por ejemplo, el modelo Article tendría un objeto de contexto llamado article_list.

get_context_data(**kwargs)

Devuelve datos de contexto para mostrar la lista de objetos.

Contexto

  • object_list: La lista de objetos que muestra esta vista. Si context_object_name se especifica, esa variable también se establecerá en el contexto, con el mismo valor que object_list.
  • is_paginated: Un valor booleano que representa si los resultados están paginados. Específicamente, esto se establece en False si no se ha especificado ningún tamaño de página o si los objetos disponibles no ocupan varias páginas.
  • paginator: Una instancia de django.core.paginator.Paginator. Si la página no está paginada, esta variable de contexto será None.
  • page_obj: Una instancia de django.core.paginator.Page. Si la página no está paginada, esta variable de contexto será None.

MultipleObjectTemplateResponseMixin

class django.views.generic.list.MultipleObjectTemplateResponseMixin

Una clase mixin que realiza una representación de respuesta basada en plantillas para vistas que operan sobre una lista de instancias de objetos. Requiere que la vista sea mixed con proporciona self.object_list, la lista de instancias de objetos en las que opera la vista. self.object_list puede ser, pero no se requiere que sea, un QuerySet.

Se extiende

  • TemplateResponseMixin

Métodos y atributos

template_name_suffix

El sufijo que se agregará al nombre de la plantilla candidata generada automáticamente. El sufijo predeterminado es _list.

get_template_names()

Devuelve una lista de nombres de plantillas candidatas. Devuelve la siguiente lista:

  • El valor de template_name en la vista (si se proporciona)
  • /.html