Classes mixins pour objets multiplesLien vers cette rubrique

MultipleObjectMixinLien vers cette rubrique

class django.views.generic.list.MultipleObjectMixinLien vers cette définition

Une classe mixin pouvant être utilisée pour afficher une liste d’objets.

Si paginate_by est indiqué, Django pagine les résultats renvoyés par la vue. Il est possible d’indiquer le numéro de page dans l’URL de deux manières différentes :

  • En utilisant le paramètre page dans la configuration d’URL. Par exemple, voici à quoi pourrait ressembler la configuration d’URL :

    Code
    path("objects/page<int:page>/", PaginatedView.as_view()),
    
  • En passant le numéro de page comme paramètre dans la chaîne de requête de l’URL. Par exemple, une URL pourrait ressembler à ceci :

    Text
    /objects/?page=3
    

Ces listes et valeurs sont indexées à partir de 1, et non 0, ce qui fait que la première page est représentée par la page 1.

Pour plus de détails sur la pagination, lisez la documentation sur la pagination.

Comme cas particulier, il est aussi permis d’utiliser last (dernier) comme valeur pour la variable page:

Text
/objects/?page=last

Cela permet d’accéder à la dernière page des résultats sans devoir d’abord déterminer le nombre total de pages.

Notez que page doit contenir un numéro de page valide ou la valeur last; toute autre valeur transmise à page produit une erreur 404.

Étend

Méthodes et attributs

allow_emptyLien vers cette définition

Une valeur booléenne indiquant s’il faut afficher la page quand aucun objet n’est disponible. Si définie à False et qu’aucun objet n’est disponible, la vue génère une erreur 404 au lieu d’afficher une page vide. La valeur par défaut est True.

modelLien vers cette définition

Le modèle pour lequel cette vue va afficher des données. Indiquer model = Foo revient au même que de définir queryset = Foo.objects.all(), où objects correspond au gestionnaire par défaut de Foo.

querysetLien vers cette définition

Un objet QuerySet représentant les objets. Lorsqu’elle est renseignée, la valeur de queryset écrase la valeur fournie pour model.

orderingLien vers cette définition

Une chaîne ou une liste de chaînes indiquant l’ordre de tri à appliquer à queryset. Les valeurs possibles sont les mêmes que pour order_by().

paginate_byLien vers cette définition

Un nombre entier indiquant combien d’objets doivent être affichés par page. Lorsque cette valeur est présente, la vue pagine les objets avec paginate_by objets par page. La vue s’attend soit à ce que la chaîne de requête de l’URL contienne un paramètre page (par request.GET) ou qu’une variable page ait été définie dans la configuration d’URL.

paginate_orphansLien vers cette définition

Un nombre entier indiquant le nombre d’objets surnuméraires que la dernière page peut contenir. Cette valeur s’ajoute au nombre paginate_by pour la dernière page, afin d’éviter que la dernière page contienne un très petit nombre d’objets.

page_kwargLien vers cette définition

Une chaîne indiquant le nom à utiliser pour le paramètre de page. La vue s’attend à la présence de ce paramètre soit comme paramètre de la chaîne de requête de l’URL (via request.GET) ou comme variable nommée présente dans la configuration d’URL. La valeur par défaut est page.

paginator_classLien vers cette définition

La classe de pagination à utiliser pour effectuer la pagination. Par défaut, c’est django.core.paginator.Paginator qui est utilisée. Si la classe de pagination personnalisée ne possède pas la même interface de constructeur que django.core.paginator.Paginator, vous devrez également fournir une implémentation pour get_paginator().

context_object_nameLien vers cette définition

Désigne le nom de la variable à utiliser dans le contexte.

get_queryset()Lien vers cette définition

Obtient la liste des éléments de la vue. Ce résultat doit être itérable et peut contenir un jeu de requête (pour lequel le comportement spécifique des jeux de requête est activé).

get_ordering()Lien vers cette définition

Renvoie une chaîne (ou une liste de chaînes) définissant le tri qui sera appliqué à queryset.

Renvoie ordering par défaut.

paginate_queryset(queryset, page_size)Lien vers cette définition

Renvoie un tuple à 4 éléments contenant (paginator, page, object_list, is_paginated).

Construit en paginant queryset en pages de taille page_size. Si la requête contient un paramètre page, soit comme paramètre capturé dans l’URL ou sous forme de paramètre GET, object_list correspondra aux objets de cette page.

get_paginate_by(queryset)Lien vers cette définition

Renvoie le nombre d’éléments sur lequel baser la pagination, ou None pour éviter la pagination. Par défaut, cela renvoie la valeur de paginate_by.

get_paginator(queryset, per_page, orphans=0, allow_empty_first_page=True)Lien vers cette définition

Renvoie une instance de la classe de pagination à utiliser pour cette vue. Par défaut, une instance de paginator_class est renvoyée.

get_paginate_orphans()Lien vers cette définition

Un nombre entier indiquant le nombre d’objets surnuméraires que la dernière page peut contenir. Par défaut, c’est la valeur de paginate_orphans qui est renvoyée.

get_allow_empty()Lien vers cette définition

Renvoie une valeur booléenne indiquant s’il faut afficher la page quand aucun objet n’est disponible. Si cette méthode renvoie False et qu’aucun objet n’est disponible, la vue produit une erreur 404 au lieu d’afficher une page vide. La valeur par défaut est True.

get_context_object_name(object_list)Lien vers cette définition

Renvoie le nom de la variable de contexte utilisée pour contenir la liste des données que cette vue manipule. Si object_list est un jeu de requête d’objets Django et que context_object_name n’est pas défini, le nom du contexte correspondra au nom de modèle des objets contenus dans le jeu de requête, ajouté du suffixe '_list'. Par exemple, pour le modèle Article, la variable de contexte sera nommée par défaut article_list.

get_context_data(**kwargs)Lien vers cette définition

Renvoie les données du contexte pour afficher la liste des objets.

Contexte

  • object_list: la liste des objets que cette vue va afficher. Si context_object_name est renseigné, cette variable sera également définie dans le contexte, avec le même contenu que object_list.

  • is_paginated: une valeur booléenne indiquant si les résultats sont paginés. Plus particulièrement, False est renvoyé si aucune taille de page n’a été indiquée ou si les objets disponibles ne remplissent qu’une seule page.

  • paginator: une instance de django.core.paginator.Paginator. Si les objets ne sont pas paginés, cette variable de contexte vaut None.

  • page_obj: une instance de django.core.paginator.Page. Si les objets ne sont pas paginés, cette variable de contexte vaut None.

MultipleObjectTemplateResponseMixinLien vers cette rubrique

class django.views.generic.list.MultipleObjectTemplateResponseMixinLien vers cette définition

Une classe mixin produisant une réponse basée sur un gabarit pour les vues opérant sur une liste d’instances d’objets. Exige que la vue dans laquelle elle est intégrée fournisse self.object_list, la liste des instances d’objets sur lesquelles la vue opère. self.object_list peut être un objet QuerySet, mais ce n’est pas obligatoire.

Étend

Méthodes et attributs

template_name_suffixLien vers cette définition

Le suffixe à ajouter au nom de gabarit auto-généré. Le suffixe par défaut est _list.

get_template_names()Lien vers cette définition

Renvoie une liste de noms de gabarits potentiels. Cette liste contient :

  • la valeur de template_name de la vue (s’il est défini)

  • <nom_app>/<nom_modèle><suffixe_gabarit>.html