2011-10-10 70 views
0

我的视图中有一个变量,即该模型上的Model.objects.all()调用的输出。在我看来,我将它传递给我的模板,我试图在模板中迭代它。我可以简单地通过这行代码访问它的第一个元素。 'code'是我的django模型中的一个字段的名称。这一行确实打印了第一个元素的“代码”属性。为什么不能遍历Django模板中的这个列表

{{ var_name.0.code }} 

但是,当我尝试遍历循环模板中的var_name时,什么也没有显示出来。我尝试下面的代码:

{% for single_var in var_name %} 
    {{ single_var.code }} 
{% endfor %} 

这其实不是我想要的for循环做,但得到这个工作让我做什么,我需要在模板中。值得注意的是,现在这个列表中只有一个元素。

这是为了一个工作项目,所以这就是为什么我将变量名改为一般的东西。

+1

你能说明你是如何定义列表并将它传递给模板的吗? –

+0

是否打印'var_name'打印对象列表?同样,每次迭代打印“single_var”是否打印对象引用? –

+0

var_name是通过调用ModelName.objects.all()来声明的。打印出var_name显示[<模型名称:'模型描述。>>]。我在视图和模板中打印了var_name,并在浏览器中和控制台中的runserver输出中显示了相同的内容。 –

回答

0

我发现将single_var的名称更改为没有下划线的东西似乎可以修复它。这不会使很多意义,我因为Django template language documentation规定如下:

Variable names consist of any combination of alphanumeric characters and the underscore ("_"). 

有谁知道为什么这似乎来解决这个问题?