小编典典

Django模板无法循环defaultdict

python

import collections

data = [
  {'firstname': 'John', 'lastname': 'Smith'}, 
  {'firstname': 'Samantha', 'lastname': 'Smith'}, 
  {'firstname': 'shawn', 'lastname': 'Spencer'}, 
]

new_data = collections.defaultdict(list)

for d in data:
    new_data[d['lastname']].append(d['firstname'])

print new_data

这是输出:

defaultdict(<type 'list'>, {'Smith': ['John', 'Samantha'], 'Spencer': ['shawn']})

这是模板:

{% for lastname, firstname in data.items %}
  <h1> {{ lastname }} </h1>
  <p> {{ firstname|join:", " }} </p>
{% endfor %}

但是模板中的循环不起作用。什么都没有出现。它甚至没有给我一个错误。我怎样才能解决这个问题?应该显示姓氏和名字,像这样:

<h1> Smith </h1>
<p> John, Samantha </p>

<h1> Spencer </h1>
<p> shawn </p>

阅读 227

收藏
2020-12-20

共1个答案

小编典典

尝试:

dict(new_data)

在Python 2中,最好使用iteritems代替items:)

2020-12-20