如何将字典传递给Django模板?

时间:2012-05-28 15:35:40

标签: django django-templates django-views

我无法在Django-template中获取字典的值。看看views.py

 def subnet_network(request, page=None):
     ipv4_sub_net , ipv6_sub_net= get_netmask(user=request.user)
     extra_context = {
         'ipv4_net': ipv4_sub_net,
         'ipv6_net': ipv6_sub_net
         }
     return direct_to_template(request, 'networks/subnet_network.html',
                          extra_context=extra_context)

获取这两个字典和subnet_network.html的值。我写了以下代码:

 <tbody>
  {% for k,v in ipv4_net.items %}
     <tr>
         <td>
             {{ v }}
         </td>
    </tr>
  {% endfor %}
 </tbody>

和上面的代码是针对ipv6_net字典的 我使用pdb.set_trace()检查字典中的值。它打印如下:

 (Pdb) print ipv4_sub_net
 [{'ipv4_sub_net': u'255.0.0.0'}, {'ipv4_sub_net': u'255.255.255.255'}]

 (Pdb) print ipv6_sub_net
 [{'ipv6_sub_net': u'/12'}, {'ipv6_sub_net': u'/128'}]

代码有问题吗?

1 个答案:

答案 0 :(得分:4)

查看print语句,您有一个包含2个词典的列表,而不是一个包含2个词元的词典。因此ipv4_sub_net.items无效。

如果你这样做,你会看到它:

for v in ipv4_sub_net:
    print v