Wie werden Klammern in Django-Vorlagen eingefügt?

Ich muss eine von geschweiften Klammern umgebene ID erstellen (z. B. "{1234}"). Bei der Django-Vorlagensprache werden geschweifte Klammern auch zum Starten einer Variablensubstitution verwendet, sodass ich Probleme habe, das zu finden, was ich möchte. Ich habe es versucht

{{{ id }}}
{{ '{'id'}' }}
{{ '{'+id+'}' }}
{ {{ id }} }

Keine dieser Methoden funktioniert, außer der letzten, die leider "{1234}" erzeugt, nicht das, was ich will. Ich habe derzeit zwei Lösungen: Entweder übergebe ich eine ID-Variable, die bereits das {} (hässlich) enthält, oder ich schreibe einen benutzerdefinierten Filter und schreibe dann {{id | add_braces}} (ich bevorzuge es).

Bevor ich diesen Weg gehe, frage ich lieber, ob es eine bessere Lösung gibt.

Die Verwendung von maskierten Werten funktioniert nicht. Selbst wenn ich {% autoescape off%}% 7B {% endautoescape%} hinzufüge, erhalte ich das {nicht, was seltsam ist, aber das ist ein anderes Problem.

Vielen Dank

Bearbeiten: Ich habe einen schnellen Filter geschrieben. Wenn Sie es hier einfügen, kann ein anderer Benutzer es als Vorlage zum Schreiben eines komplexeren Dokuments verwenden. In das Python-Paket application_path / templatetags / formatting.py einfügen

from django import template
from django.template.defaultfilters import stringfilter

register = template.Library()

@register.filter
@stringfilter
def add_braces(value):
    return "{"+value+"}"

Antworten auf die Frage(3)

Ihre Antwort auf die Frage