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.

152voto

Ondrej Slinták Punkte 30258

Django 1.5 eingeführt {% verbatim %} Vorlage-Tag. Es hält die Vorlage davon ab, den Inhalt dieses Tags zu parsen:

{% verbatim %}
    {{ var }}
{% endverbatim %}

wird wie folgt wiedergegeben:

{{ var }}

67voto

Nate Punkte 12067

Ich glaube, Sie suchen nach dem templatetag Vorlage-Tag.

Wie das verlinkte Dokument besagt,

Da das Vorlagensystem kein Konzept des "Escapings" hat, müssen Sie, um eines der in Vorlagen-Tags verwendeten Bits anzuzeigen, die Option {% templatetag %} Tag.

Zum Beispiel:

<p>"{% templatetag openvariable %} some text {% templatetag closevariable %}"</p>

wird so erscheinen:

<p>"{{ some text }}"</p>

28voto

Lycha Punkte 9444

Edita: Ich empfehle dies nicht wirklich, weil es nicht sehr sauber ist, aber es ist immer noch eine Option.

Ich war auf der Suche nach einer, die ich mit JQuery Templates verwenden könnte und fand einen Weg, es ohne Tags oder Filter zu tun. Dies ist so kurz, wie ich es bekommen konnte:

{{ "{{ any text }" }}}

Wird gedruckt als:

{{ any text }}

Warum funktioniert es? Jeder Text innerhalb von {{}} wird so angezeigt, wie er ist, solange er nicht zwei schließende geschweifte Klammern }} in einer Reihe hat. Dann gibt es drei Klammern in einer Reihe, django interpretiert die ersten beiden als Ende der Variable und lässt eine zusätzliche schließende Klammer übrig.

15voto

Sie können versuchen, mit html-Zeichen-Escapes wie:

{ = &#123;

} = &#125;

<p>"&#123;&#123; some text &#125;&#125;"</p>

Probieren Sie das in Ihrem Browser aus.

7voto

Andrew Hong Punkte 95

Wenn Sie einfach {{ }} als Variable für Template-Frameworks wie Angularjs verwenden müssen, dann ist das Folgende vielleicht einfacher:

in Ihrem <app path>/templatetags/ngvar.py , hinzufügen

from django import template
register = template.Library()

@register.simple_tag
def ngvar(var_name):
    return "{{%s}}" % var_name

und in der Vorlage, tun

{% load ngvar %}
{% ngvar "variable name" %}

wenn ngvar.py das erste Template-Tag ist, dann fügen Sie bitte Folgendes hinzu __init__.py Datei zum templatetags Verzeichnis

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