0

我无法在 Django 模板中获取字典的值。看一看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'}]

代码有问题吗?

4

1 回答 1

4

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

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

for v in ipv4_sub_net:
    print v
于 2012-05-28T15:52:57.847 回答