Question

Je suis mise en œuvre James Bennett l 'excellent django-formulaire de contact mais ont frappé un accroc. Ma page de contact contient non seulement la forme, mais aussi des informations de la page plat supplémentaire.

Sans réécrire la vue existante le formulaire de contact utilise, je voudrais être en mesure de conclure, ou de la chaîne, les points de vue. De cette façon, je pourrais injecter des informations supplémentaires par le contexte afin que la forme et les données de page plats pourraient être rendus dans le même modèle.

Je l'ai entendu mentionner que cela est possible, mais je ne peux pas sembler comprendre comment faire fonctionner. J'ai créé mon propre point de vue wrapper, appelé le formulaire de contact vue, et a tenté d'inspecter l'objet HttpResponse pour un attribut que je peux ajouter, mais je ne peux pas sembler comprendre, le cas échéant, il est.

EDIT: James a fait remarquer que le dernier code peut nouveau trouver ici à BitBucket.

Était-ce utile?

La solution

  1. Ecrire un emballage qui utilise l'URL pour rechercher l'objet page plat approprié.
  2. A partir de votre emballage, composez le (et renvoyer la réponse) le formulaire de contact vue, en passant la page plat dans l'argument extra_context (qui est là pour, entre autres, précisément ce genre de cas d'utilisation).
  3. Il n'y a pas de troisième étape.

Autres conseils

Il y a un processeur de contexte qui peut faire ce que vous voulez.

http://docs.djangoproject.com/en/dev/ ref / templates / api /

Vous pouvez probablement ajouter vos différents morceaux de « informations de la page plat » au contexte.

processeurs de contexte sont ce que vous pensez. Et render_to_response est hors de propos. La pièce requise de l'information est si la vue utilise RequestContext ou non, car c'est ce qui active les processeurs de contexte.

Autre que ceux-ci, il n'y a aucun moyen de points de vue « de la chaîne » pour ajouter au contexte - vous pouvez envelopper un point de vue dans une autre et de modifier les données qui vont dans, mais vous ne peut pas ajouter au contexte manière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top