V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaojay
V2EX  ›  Django

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

  •  
  •   xiaojay ·
    xiaojay · 2013-05-14 10:05:12 +08:00 · 6336 次点击
    这是一个创建于 4011 天前的主题,其中的信息可能已经有所发展或是发生改变。
    例子:
    v = {'a-b': 'c'}
    在django 模板中去v的值,但是 {{v.a-b}} 这样写不行,请教有什么简单方法解决?
    难道只能在view中转换下?
    7 条回复    1970-01-01 08:00:00 +08:00
    kidblg
        1
    kidblg  
       2013-05-14 10:30:38 +08:00   ❤️ 1
    {% for k,j in v.items %}
    {{k}}, {{j}}
    {% endfor %}
    lyoe
        2
    lyoe  
       2013-05-14 10:40:40 +08:00   ❤️ 1
    难道不是 v['a-b'] ?
    xiaojay
        3
    xiaojay  
    OP
       2013-05-14 11:03:07 +08:00
    @kidblg 我不需要用循环,只是取其中一个值

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

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

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

    如果经常需要处理这样的特殊情况,那就写个tags。
    swulling
        7
    swulling  
       2013-05-14 11:20:09 +08:00
    django的template真是噩梦,干脆替换到Jinjia2算了<
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1067 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 22:20 · PVG 06:20 · LAX 15:20 · JFK 18:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.