Frage

Ich bin der Umsetzung James Bennett ist ausgezeichnet django-Kontakt-Formular haben aber einen Haken schlagen. Meine Seite enthält nicht nur die Form, sondern auch zusätzliche flache Seite Informationen.

Ohne Umschreiben die bestehende Ansicht des Kontakt-Formular verwendet, würde Ich mag wickeln zu können, oder eine Kette, die Ansichten. Auf diese Weise konnte ich einige zusätzliche Informationen über den Kontext injizieren, so dass sowohl die Form und die flachen Seitendaten können innerhalb der gleichen Vorlage gemacht werden.

Ich habe gehört, erwähnt, dass dies möglich ist, aber ich kann nicht scheinen, um herauszufinden, wie es funktioniert. Ich habe meine eigene Wrapper-Ansicht erstellt, die Kontaktformularansicht aufgerufen und versucht, das Httpresponse-Objekt für ein Attribut zu inspizieren ich anfügen kann, aber ich kann nicht scheinen, um herauszufinden, welche, wenn überhaupt, es ist.

EDIT: James bemerkte, dass der neueste Code neu gefunden werden kann hier bei BitBucket.

War es hilfreich?

Lösung

  1. Schreiben Sie einen Wrapper, der die URL verwendet das entsprechende flache Seite Objekt zu suchen.
  2. Von Ihrem Wrapper, rufen Sie (und gibt die Antwort von) die Kontaktformularansicht, die flache Seite im extra_context Argumente übergeben (die gibt es für, unter anderem genau diese Art von Anwendungsfall).
  3. Es gibt keinen dritten Schritt.

Andere Tipps

Es gibt einen Kontext-Prozessor, der tun kann, was Sie wollen.

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

Sie können sich wahrscheinlich Ihre verschiedenen Stücke von „flachen Seiteninformationen“ auf den Kontext hinzuzufügen.

Kontext-Prozessoren sind das, was Sie denken an. Und render_to_response ist irrelevant. Der erforderliche Teil der Information ist, wenn die Ansicht Request verwendet oder nicht, wie das ist, was Kontext Prozessoren aktiviert.

Andere als die, gibt es keine Möglichkeit zu „Kette“ Ansichten Kontext hinzufügen - Sie einen Blick in einer anderen wickeln können und verändern die Daten in sie eindringen, aber Sie nicht zu Kontext hinzufügen, dass Art und Weise.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top