Classes mixins pour objet uniqueLien vers cette rubrique

SingleObjectMixinLien vers cette rubrique

class django.views.generic.detail.SingleObjectMixinLien vers cette définition

Fournit un mécanisme pour rechercher un objet associé à la requête HTTP en cours.

Méthodes et attributs

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.

slug_fieldLien vers cette définition

Le nom du champ de modèle qui contient le slug. Par défaut, slug_field est 'slug'.

slug_url_kwargLien vers cette définition

Le nom du paramètre nommé dans l’URL contenant le slug. Par défaut, slug_url_kwarg est 'slug'.

pk_url_kwargLien vers cette définition

Le nom du paramètre nommé dans l’URL contenant la clé primaire. Par défaut, pk_url_kwarg est 'pk'.

context_object_nameLien vers cette définition

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

query_pk_and_slugLien vers cette définition

Si True, indique à get_object() de rechercher un objet à la fois avec la clé primaire et le « slug ». Vaut False par défaut.

Cet attribut peut contribuer à prévenir les attaques de référence directe d’objet non sécurisé. Lorsque des applications permettent d’accéder à des objets individuels par une clé primaire séquentielle, un attaquant pourrait deviner toutes les URL par force brute, obtenant par là-même une liste de tous les objets de l’application. Si ceux qui peuvent accéder aux objets individuels ne devraient pas pouvoir obtenir toute la liste, la définition de query_pk_and_slug à True aide à empêcher la découverte des URL du fait que chaque URL nécessite deux paramètres corrects et non séquentiels. On pourrait obtenir un résultat semblable en exigeant un slug unique, mais ce système permet d’avoir des slugs non uniques.

get_object(queryset=None)Lien vers cette définition

Renvoie l’objet unique que cette vue va afficher. Si queryset est indiqué, ce jeu de requête est utilisé comme source des objets ; sinon, get_queryset() est appelée. get_object() recherche un paramètre pk_url_kwarg dans les paramètres de la vue ; si ce paramètre est trouvé, cette méthode effectue une sélection basée sur la clé primaire avec cette valeur. Dans le cas contraire, elle consulte le paramètre slug_url_kwarg et effectue une sélection basée sur le slug avec la valeur slug_field.

Lorsque query_pk_and_slug vaut True, get_object() rechercher son objet à la fois avec la clé primaire et le « slug ».

get_queryset()Lien vers cette définition

Renvoie le jeu de requête qui sera utilisé pour récupérer l’objet que cette vue va afficher. Par défaut, get_queryset() renvoie la valeur de l’attribut queryset s’il est défini, sinon elle construit un objet QuerySet en appelant la méthode all() sur le gestionnaire par défaut de l’attribut model.

get_context_object_name(obj)Lien vers cette définition

Renvoie le nom de la variable de contexte utilisée pour contenir les données que cette vue manipule. Si 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. Par exemple, pour le modèle Article, la variable de contexte sera nommée 'article'.

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

Renvoie les données du contexte pour afficher l’objet.

L’implémentation de base de cette méthode exige que l’attribut self.object soit défini par la vue (même avec None). Assurez-vous de le définir si vous utilisez cette classe mixin sans l’une des vues intégrées qui le fait.

Renvoie un dictionnaire contenant :

  • object: l’object affiché par cette vue (self.object).

  • context_object_name: self.object sera aussi stocké sous le nom renvoyé par get_context_object_name(), qui équivaut par défaut au nom de modèle en minuscules.

get_slug_field()Lien vers cette définition

Renvoie le nom d’un champ de type slug à utiliser lors de la sélection par slug. Par défaut, cette méthode renvoie simplement la valeur de slug_field.

SingleObjectTemplateResponseMixinLien vers cette rubrique

class django.views.generic.detail.SingleObjectTemplateResponseMixinLien vers cette définition

Une classe mixin produisant une réponse basée sur un gabarit pour les vues opérant sur une seule instance d’objet. Exige que la vue dans laquelle elle est intégrée fournisse self.object, l’instance d’objet sur laquelle la vue opère. self.object est généralement une instance d’un modèle Django, mais ce n’est pas une règle absolue. Elle peut valoir None si la vue est en cours de construction d’une nouvelle instance.

Étend

Méthodes et attributs

template_name_fieldLien vers cette définition

Le champ de l’instance d’objet actuelle pouvant être utilisé pour déterminer le nom d’un gabarit potentiel. Si template_name_field lui-même ou la valeur de template_name_field pour l’instance d’objet actuelle vaut None, l’objet ne sera pas utilisé pour trouver un nom de gabarit potentiel.

template_name_suffixLien vers cette définition

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

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)

  • le contenu du champ template_name_field de l’instance d’objet sur laquelle la vue opère (si disponible)

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