为什么我只在django中获取for循环的最后一个值?

时间:2014-06-27 06:53:31

标签: python django python-2.7

让我们说:

y = [go, cat, jump, see]

如果我这样做:

查看:

  for x in y:
      x

模板:

   {{x}}

我只会得到x =看到而没有其他结果,1。为什么会这样? 2.我怎样才能使它工作? 我知道在模板中工作但我需要查找数组或dicitonary中每个项目的一些值(除非,也可以在模板中完成)。有什么想法吗?

编辑。 所以我有这个:session = {4,5,6,7,}  它保存在会话中,它来自一个完整的复选框选项,这些都是主键。

的观点:

 form = inlinefactory_formset(model1, model 2,extra = len(sesssion)
 formset = form(instance=None )

在我看来,我有这个

{% for x in session%}
    {{x}} {{formset}}   
    {%endfor%}

因此它会打印数字和数字的表格。这几乎就是我想要的,x是像我上面提到的那样的pk,我想用pk查找x实例的名称并用表单打印,以便人们知道他们正在编辑什么形式。

2 个答案:

答案 0 :(得分:0)

for循环x内部更新。因此,在运行之后,x的值是列表中的最后一个值。

你想要做的是在模板中循环它:

{% for x in y %}
   {{ x }}
{% endfor %}

答案 1 :(得分:0)

我认为在你的观点中,你正在做,

for x in y:
   print x

然后你就像这样渲染上下文,

render(request, "some.html", {"x": x} )

但上面只取最后一个值。

这样做,

render(request, "some.html", {"y": y} )

在你的模板中,

{% for x in y%}
    {{ x }}
{% endfor %}