2012-04-09 8 views
1

Ich möchte Moustache in meine Django App integrieren. Welche Schritte müsste ich unternehmen, um Djangos Vorlagensystem komplett durch Moustache zu ersetzen?Wie kann ich den Vorlagenrahmen in Django ändern?

Ich möchte, dass render_to_response ordnungsgemäß mit Moustache-Vorlagen arbeiten und alle richtigen Variablen mit dem Kontext übergeben (STATIC_URL, Anforderung usw.).

Antwort

6

Grundsätzlich müssen Sie die render_to_response Funktion durch Ihre eigene Implementierung ersetzen, die das Vorlagensystem Ihrer Wahl verwendet. Djangos render_to_response ist spezifisch für Djangos Templating-System. Diese Funktion umschließt einfach einige gebräuchliche Grunzen, die bei der Verwendung der Django-Template-Engine verwendet werden. Die Grundlagen ihrer Arbeit sind in Django's tutorial behandelt.

Verwenden Sie die django.template.RequestContext, um alle Kontextvariablen zu erfassen, die in der Einstellung TEMPLATE_CONTEXT_PROCESSORS angegeben sind (wobei STATIC_URL, Anforderung usw. definiert werden). Da sich RequestContext wie ein Wörterbuch verhält, sollten Sie es ohne Probleme auf den Schnurrbart übertragen können. RequestContext nimmt das Anfrageobjekt in seinem Konstruktor.

Schließlich vergessen Sie nicht, das richtige HttpResponse Objekt zurückzugeben!

Da ich nicht viel von einem Absatz Fan:

  1. erstellen Request Instanz.
  2. Merge-Dictionary mit RequestContext-Instanz empfangen.
  3. Rendern Sie die Vorlage in eine Zeichenfolge.
  4. Umschließen Sie die letzte Zeichenfolge mit einer HttpResponse-Instanz.