Potrzebuję utworzyć identyfikator otoczony nawiasami klamrowymi (na przykład "{1234}"). W języku szablonów django, klamry są również używane do rozpoczynania zastępowania zmiennych, więc mam problem z uzyskaniem tego, co chcę. PróbowałemJak umieścić nawiasy klamrowe w szablonach django?
{{{ id }}}
{{ '{'id'}' }}
{{ '{'+id+'}' }}
{ {{ id }} }
Żadna z tych metod pracy, z wyjątkiem ostatniego, który niestety produkuje „{1234}”, a nie to, co chcę. Obecnie mam dwa rozwiązania: albo przekazuję zmienną id zawierającą już {} (brzydki) lub piszę filtr niestandardowy, a następnie napiszę {{id | add_braces}} (wolę to).
Zanim przejdziemy w tę stronę, wolę zapytać, czy istnieje lepsze rozwiązanie.
Używanie wartości przekształconych nie działa. Nawet jeśli dodaję {% autoescape off%}% 7B {% endautoescape%} nie dostaję {, co jest dziwne, ale to kolejny problem.
Dzięki
Edit: Napisałem krótki filtr. Wklejasz go tutaj, aby ktoś inny mógł go użyć jako szablonu do napisania bardziej złożonego. Zostać wprowadzone do pakietu python application_path/templatetags/formatting.py
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter
@stringfilter
def add_braces(value):
return "{"+value+"}"
Dzięki! w każdym razie napisałem filtr. Dodanie go, jeśli ktoś chce użyć go jako przykład małego filtru ... –