请教django模板 当variable是一个dict,取dict值的时候,key是一个“a-b"形式的string,那么该怎么取值?

2013-05-14 10:05:12 +08:00
 xiaojay
例子:
v = {'a-b': 'c'}
在django 模板中去v的值,但是 {{v.a-b}} 这样写不行,请教有什么简单方法解决?
难道只能在view中转换下?
6460 次点击
所在节点    Django
7 条回复
kidblg
2013-05-14 10:30:38 +08:00
{% for k,j in v.items %}
{{k}}, {{j}}
{% endfor %}
lyoe
2013-05-14 10:40:40 +08:00
难道不是 v['a-b'] ?
xiaojay
2013-05-14 11:03:07 +08:00
@kidblg 我不需要用循环,只是取其中一个值

@lyoe django template 里不允许的 ...
mengzhuo
2013-05-14 11:07:23 +08:00
v.a-b会被模板解析成
v.a 减去 b
所以就不行了,换一个变量吧
DH
2013-05-14 11:10:57 +08:00
kidblg
2013-05-14 11:17:36 +08:00
@xiaojay

或者遍历的时候,加个判断,不过看起来很笨。
v = {'a-b': 'c'}

{%for k,j in v.items%}
{%if k == 'a-b'%}{{j}}{%endif%}
{%endfor%}

如果经常需要处理这样的特殊情况,那就写个tags。
swulling
2013-05-14 11:20:09 +08:00
django的template真是噩梦,干脆替换到Jinjia2算了<

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/68761

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX