在我的代码中,名为 data 的变量名称包含名称为 'username' 和 'user$id' 的 dict
如果我这样做 {{ data.username }} 一切正常。但如果我这样做 {{ data.user$id }} 什么都不会显示。
如何转义 $ 以使 Django 模板工作?
在我的代码中,名为 data 的变量名称包含名称为 'username' 和 'user$id' 的 dict
如果我这样做 {{ data.username }} 一切正常。但如果我这样做 {{ data.user$id }} 什么都不会显示。
如何转义 $ 以使 Django 模板工作?
Django模板不允许dollor字符在变量名中,参考文档:
变量名称由字母数字字符和下划线(“_”)的任意组合组成。点(“.”)也出现...
在 Django 外壳中
>>> from django.template import *
>>> Template("{{ data.user$id }}").render(Context({'data':{'user$id':'foo'}}))
...
TemplateSyntaxError: Could not parse the remainder: '$id' from 'data.user$id'
# "{[" also does not work
>>> Template("{[ data.user$id }}").render(Context({'data':{'user$id':'foo'}}))
u'{[ data.user$id }}'
因此,您需要将键明确表示为字符串
{% for k, v in data.iteritems %}
{% if k == 'user$id' %}{{ v }}{% endif %}
{% endfor %}
或者写一个模板标签作为{% get_value data "user$id" %}