2009-02-27 15 views
-5

Hilfe bitte mit einem Django benutzerdefinierte Tag. Analysiere es bitte!Teleport - django benutzerdefinierte tag

Idee:

  1. in einer Vorlage (Eltern oder Kind), wir einen Tag {{Telepomt "Kopf"}}, mit einem Namen, wie Puttern könnte mehr als eine Installation sein.

  2. An anderen Seite haben wir

    {{ teleputter "head" "unique-name" }} some html {{ teleputterend }} 
    

    Inhalt dieses Blocks mit entsprechenden Telepomt Namen sperren Telepomt geht.

+0

Es ist nicht genau klar, was Sie zu erreichen versuchen. Bitte erläutern. – awithrow

+0

Ich versuche, ähnlich zu Vererbung {{extend}} Feature, aber für {{include}} Vorlagen und mit der Möglichkeit, nicht eine, sondern viele Blöcke, zu einem Container –

+0

So in der Vorlage Sie würden ein {{ Telepoint}} Tag und dieses Tag würde durch den Inhalt dessen, was in {{Teleputter}} ist, ersetzt? Oder verpasse ich noch etwas? – awithrow

Antwort

2

Das klingt wie Sie Vorlage Vererbung versuchen zu implementieren: für die beste Erklärung http://docs.djangoproject.com/en/dev/topics/templates/#id1

Lesen Sie die vollständige Dokumentation. Die Readers Digest-Version folgt.

Im Wesentlichen haben Sie eine Basisvorlage mit Inhaltsblöcke mit Standardwerten:

base.html 
{% block head %} "Default html goes here" {% endblock %} 

Als Nächstes erstellen Sie eine andere Vorlage, die die Basisvorlage erstreckt und bauen die Blöcke Sie möchten, ersetzen:

anotherTemplate.html 
{% extends "base.html %} 
{% block head %} "This replaces the html in the base head block" {% endblock %} 

Es klingt für mich, dass Ihr "Telepoint" ist ein Block in der Basisvorlage und Ihr "Teleputter" ist ein Block, der die Basisvorlage

erweitert klingt wie das, was du versuchst zu tun? Ist das, was Sie versuchen, anders zu implementieren?

+0

Ich habe bereits gesagt, dass es wie Vererbung aussieht, aber es ist nicht Unterschied: 1. Teleputter - könnte Telepoint von Vorlage, die als hinzugefügt hinzugefügt 2. Block in der Erbschaft konnte nur einmal füllen 3. Vererbung bedeutet, ich werde Verwenden Sie nur eine untergeordnete Vorlage, aber ich mache die Komponenten, die ich einbinden werde –