73 Stimmen

Wie zu entkommen {{ oder }} in django Vorlage?

Django Leckerbissen {{ var }} als eine Variable in seiner Vorlage. Wie kann ich entkommen {{ var }} o {{ o }} so dass django sie nicht als Variable behandelt.

<p>"{{ some text }}"</p> Die Ausdrucke sollten genau gleich sein.

3voto

Andrew Clark Punkte 193562

Eine andere Möglichkeit wäre das Hinzufügen einer Wortverbindungsmaschine (ein Leerzeichen ohne Unterbrechung) zwischen jeder geschweiften Klammer:

<p>"{&#8288;{ some text }&#8288;}"</p>

3voto

Pili Hu Punkte 151

Obwohl die obigen Antworten das ursprüngliche Problem lösen können, füge ich hier noch einen Hack für diejenigen hinzu, die sich wie ich den Kopf zerbrechen.

Manchmal wollen wir eine einzelne geschweifte Klammer, gefolgt von einer Variablen, darstellen. In BibTeX kann das zum Beispiel so aussehen:

@MISC{hu2012-spectral,
    author = {Hu, Pili},
    title = {Spectral Clustering Survey},
    howpublished = {GitHub, https://github.com/hupili/tutorial/tree/master/spectral-clustering},
    month = {May},
    year = {2012}
}

Diese Lätzchenfelder stammen aus Vorlagenvariablen. Wenn Sie schreiben

title = {{{title}}},

jinja kann nicht kompilieren und gibt einen Fehler aus. Wenn Sie schreiben

title = { {{title}} },

gibt es zusätzliche Leerzeichen. Die Umgehung besteht darin, "{" und "}" als Variablen zu speichern und später zu verwenden.

{% set lb = '{' %}
{% set rb = '}' %}
...
@MISC{{lb}}{{ meta.bib_key }},
    author = {{lb}}Hu, Pili{{rb}},
    title = {{lb}}{{ meta.title }}{{rb}},
    howpublished = {{lb}}GitHub, https://github.com/hupili/tutorial/tree/master/{{ auto.path}}{{rb}},
    month = {{lb}}{{ meta.month }}{{rb}},
    year = {{lb}}{{ meta.year }}{{rb}}
}

Das sieht unbeholfen aus, ist aber das Beste, was ich bisher gefunden habe. Wenn Sie eine sauberere Lösung haben, sagen Sie es mir bitte.

2voto

Kinsa Punkte 648

Dieses Template-Tag (entwickelt für die Verwendung mit jQuery Templates) könnte den Zweck erfüllen. Damit können Sie Inhalte, die Django nicht als Variablen interpretieren soll, mit einem Template-Tag einpacken.

2voto

Rohith K P Punkte 2797

Es kann durch die Vermeidung von benachbarten Angular Backets gelöst werden, wenn seine innerhalb Javascript-Code dann können Sie schreiben

'{'+'{address.'+key+'}}'

Ich habe dies verwendet, um Jinja-Variablen in eine andere Vorlage zu drucken, mit Javascript.

1voto

Sean Punkte 2185

Jinja, das für die Vorlagen verwendet wird, bietet mehrere Vorschläge für das Escaping hier. Am besten hat es sich bewährt, etwas zu verwenden wie "{% raw %}{{ some text }}{% endraw %}"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X