1
swulling 2013-04-24 00:17:40 +08:00
访问字典不是 a[k]
django 的template没用过,连这个也不允许么 |
2
hzymyp 2013-04-24 01:33:06 +08:00 1
{% endfor %}
{% for k, v in time.items%} {{k}} {% endfor %} 这样写是能得到的啊 |
3
hzymyp 2013-04-24 01:39:35 +08:00 1
忽略第一个endfor。。。
|
4
shinwood OP |
5
kidblg 2013-04-24 10:04:50 +08:00 1
|
6
swulling 2013-04-24 10:20:41 +08:00 1
@shinwood 我想起来了,django的template比较严格,很久之前用过,很不爽。其实你可以考虑用其他的模版系统。比如Jinjia2
|
7
yinian1992 2013-04-24 14:08:51 +08:00
你都已经获得 value 了还要 key 取 value 干吗?
|
8
shinwood OP @yinian1992 设想我有两个dict:
a = {'today':1, 'tomorrow':2, 'yesterday':3} b = {'today':1, 'yesterday':3} 设想我要交叉一下 for k,v in b.items(): print a[k] 类似于这种功能。 |
9
yinian1992 2013-04-24 15:08:06 +08:00 1
@shinwood 用 dot 必然是实现不了了
看我的 O(n^2) 实现: {% for ak,av in a.iteritems %} {% for bk,bv in b.iteritems %} {% if ak == bk %} {{ bv }} {% endif %} {% endfor %} {% endfor %} |
10
shinwood OP @yinian1992 233,这也可以!!感谢提供不错的思路,就是不知道如果量多的话效率如何?
|
11
yinian1992 2013-04-24 15:13:47 +08:00
@shinwood 一定效率捉急……
|
12
ant_sz 2013-04-25 21:53:29 +08:00 1
我再添一句
像这样的功能原则上是应该放到 Controller 里的,不应该放到 View 里 在Controller里建立一个 c 字典,然后用a的key把b的值取出来放到c里 然后在模板里只引用c 这样是比较符合MVC模式的实现方式 |
13
shinwood OP |
14
davidzhang 2014-01-22 19:33:56 +08:00
{% for k, v in time.items%}
{{k}} {% endfor %} 这样写是能得到的啊 |
15
shinwood OP @davidzhang 对,这是对于 time 这个对象当中的可以得到,如果我现在有一个 b 对象,我要得到 b.k 的值呢?
|
16
HanSonJ 2016-01-21 00:08:40 +08:00
好久的贴,但想问问楼主的解决方案有没有案例?
|