2014-06-17 60 views
0

我看过以前的问题,我无法找到我的问题的答案。
我正在尝试显示一个2D列表,我之前在HTML中使用了不同的列表。 我对其他列表使用了类似的方法,但它不会显示,我只是得到标题。
HTML:Django模板不会显示列表

<table class="listtable" > 
    <thead> 
    <tr> 
     <th>No</th> 
     <th>Account No</th> 
     <th>Time</th> 
     <th>Message</th> 
    </tr> 
    </thead> 
    {% for person in user %} 
    <tr> 
     {% for message in person %} 
     <td>{% autoescape off %}{{ message }}{% endautoescape %}</td> 
     {% endfor %} 
    </tr> 
    {% endfor %} 
</table> 

我已经印在视图列表,所以我知道在视图中它是正确的。我100%肯定我也使用了正确的变量。
视图中的代码类似于:

user = get_data_from_other_source() 
for item in user: 
    print(item) 

打印显示正是它应该。
这份名单是沿着关闭线:

[4, '<account number>', '<time>', 'somestring'] 
[3, '<account number>', '<time>', 'somestring'] 

页面源说:

<table class="listtable" > 
    <thead> 
    <tr> 
     <th>No</th> 
     <th>Account No</th> 
     <th>Time</th> 
     <th>Messages</th> 
    </tr> 
    </thead> 

</table> 

编辑:主持人视图代码..

@login_required(login_url='/login') 
def page_control(request): 
    acc_no = request.session['acc_no'] 

    user = setup_page_control (acc_no) 
    for item in user: 
     print(item) 
    return render_to_response("<htmlfile>.html", 
           locals(), 
           context_instance=RequestContext(request)) 



def setup_user_control(acc_no): 
    messages = <outside magic> 
    user = reversed(messages) 
    return user 

我已经烧毁了很多出代码,并更改变量名称等。 我只删除了我100%确定的东西Ë不是问题

+0

使用不同的上下文变量名。将'user'改为'user_list'或其他东西。 – karthikr

+0

如果可以的话,粘贴整个视图代码。 – petkostas

+0

我已更改变量名称,“用户”是别的,我不得不改变安全的东西 – Maximas

回答

2

为您找到问题的解释:

reversed()返回反向iterator。这是颠倒列表,你希望它是:

>>> a = [1,2,3,4,5] 
>>> print reversed(a) 
<listreverseiterator object at 0x...> 

正如你所看到的,相反的(a)不是反向的名单,但实际的迭代器本身。为了得到反转列表像你想你可以使用:

user = list(reversed(messages)) 
# or 
user = messages[::-1] 

(来源:How can I reverse a list in python?

+0

啊,非常感谢你为我清理它:) – Maximas

0

我相信你的反应应该是这样的:

return render_to_response("<htmlfile>.html", 
          {'user':user}, 
          context_instance=RequestContext(request)) 
+0

这不是我的问题,我已经添加了我的答案 – Maximas

0

我发现我的问题,但我不知道为什么会发生。 当我删除:

user = reversed(messages) 

模板愿意再次输出列表。非常奇怪。如果有人知道为什么会作出解释是巨大的:)

+0

对于消息输出的调试是什么? – petkostas

+0

有没有错误,它甚至打印正确,它只是不会输出到模板 – Maximas