我需要生成一个用大括号括起来的 id(例如 "{1234}" )。使用django模板语言,大括号也用于启动变量替换,所以我在获取我想要的东西时遇到了一些麻烦。我试过
{{{ id }}}
{{ '{'id'}' }}
{{ '{'+id+'}' }}
{ {{ id }} }
这些方法都不起作用,除了最后一种方法,不幸的是它产生了“{ 1234 }”,这不是我想要的。我目前有两种解决方案:要么传递一个已经包含 {} 的 id 变量(丑陋),要么我编写一个自定义过滤器,然后编写 {{ id|add_braces }} (我更喜欢它)。
在走这条路之前,我更喜欢问是否存在更好的解决方案。
使用转义值不起作用。即使我添加 {% autoescape off %}%7B{% endautoescape %} 我也没有得到 {,这很奇怪,但这是另一个问题。
谢谢
编辑:我写了一个快速过滤器。将其粘贴在这里,以便其他人可以将其用作编写更复杂模板的模板。放入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+"}"