我的for循环没有得到值

时间:2011-01-19 20:26:41

标签: python django

这就是我所拥有的:

result = defaultdict(<type 'list'>,
{'USA': [{'username': 'user123', 'first-name': 'John', 'last-name': 'Doe'}],
 'Europe': [{'username': 'myname654', 'first-name': 'Peter', 'last-name': 'Johnson'}]
})

这是我想要的输出

<html>
  <body>
    <h1> USA </h1>
    <p> user123, John Doe</p>

    <h1> Europe </h1>
    <p> myname654, Peter Johnson</p> 
  </body>
</html>

我已经尝试了大量不同的for循环,但没有一个有效。

这就是我所拥有的,但它不起作用。

{% for item in result %}
<h1> {{ item }} </h1>
<p> {{ result.item.username }} </p>
{% endfor %}

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您正在使用print获取for循环中的输出。这首先将对象转换为字符串。显然,这种情况下的对象是某种xml / html对象。

从Django模板内部,您不打印。你可以尝试通过str()调用将对象转换为字符串,但总的来说,我觉得你试图让模板做一些你不应该首先制作模板的东西。

尝试在模型对象上使用一个返回所需字符串的方法,然后将其插入到模板中。

答案 2 :(得分:0)

我认为这一行:

<p> {{ result.item.username }} </p>

应该是:

<p> {{ result.item.0.username }} </p>