Mixins simples

ContextMixin

class django.views.generic.base.ContextMixin

Méthodes

get_context_data(**kwargs)

Renvoie un dictionnaire représentant le contexte de gabarit. Les paramètres nommés fournis vont servir à former le contexte renvoyé. Exemple d’utilisation :

def get_context_data(self, **kwargs):
    context = super(RandomNumberView, self).get_context_data(**kwargs)
    context['number'] = random.randrange(1, 100)
    return context

Le contexte de gabarit de toutes les vues génériques fondées sur les classes contiennent une variable view qui pointe dur l’instance View.

Utilisation de alters_data quand c’est nécessaire

Notez que le fait d’avoir l’instance de vue dans le contexte du gabarit peut exposer des méthodes potentiellement dangereuses aux rédacteurs de gabarits. Pour éviter que de telles méthodes soient appelées à partir des gabarits, définissez alters_data=True pour ces méthodes. Pour plus d’informations, lisez la documentation sur l’affichage d’un contexte de gabarit.

TemplateResponseMixin

class django.views.generic.base.TemplateResponseMixin

Fournit un mécanisme pour construire un objet TemplateResponse, à partir d’un contexte approprié. Le gabarit employé peut être configuré et peut être personnalisé ensuite par les sous-classes.

Attributs

template_name

Le nom complet d’un gabarit à employer sous forme de chaîne de caractères. Si template_name n’est pas indiqué, une exception django.core.exceptions.ImproperlyConfigured est générée.

template_engine
New in Django 1.8.

Le nom NAME d’un moteur de gabarit à utiliser pour le chargement du gabarit. template_engine est transmis par le paramètre nommé using à response_class. La valeur par défaut est None, ce qui indique à Django de rechercher le gabarit avec tous les moteurs configurés.

response_class

La classe de réponse que la méthode render_to_response va renvoyer. La classe par défaut est TemplateResponse. Le gabarit et le contexte des instances TemplateResponse peut être modifié par la suite (par exemple dans un intergiciel de réponse de gabarit).

Changed in Django 1.8:

Dans les versions précédentes de Django, TemplateResponse utilisait RequestContext de manière à ce que les valeurs des processeurs de contexte de gabarit surchargent les variables de gabarit définies dans les vues. Par exemple, si vous héritiez de DetailView et que vous définissiez context_object_name à user, le processeur de contexte django.contrib.auth.context_processors.auth aurait écrasé cette variable en remplaçant son contenu par l’utilisateur actuel. Dorénavant, par cohérence avec le raccourci render(), les valeurs du contexte fournies par la classe surchargent les valeurs provenant des processeurs de contexte.

Si vous avez besoin d’un chargement personnalisé du gabarit ou d’une création personnalisée de l’objet de contexte, créez une sous-classe de TemplateResponse et assignez-la à response_class.

content_type

Le type de contenu à utiliser pour la réponse. content_type est transmis sous forme de paramètre nommé à response_class. La valeur par défaut est None, ce qui signifie que Django utilise alors DEFAULT_CONTENT_TYPE.

Méthodes

render_to_response(context, **response_kwargs)

Renvoie une instance de self.response_class.

Tout paramètre nommé éventuellement fourni sera transmis au constructeur de la classe de réponse.

Appelle get_template_names() afin d’obtenir la liste des noms de gabarits utilisés lors de la recherche de gabarit existants.

get_template_names()

Returns a list of template names to search for when rendering the template. The first template that is found will be used.

Si template_name est renseigné, l’implémentation par défaut renvoie une liste contenant template_name.

Back to Top