2013-02-12 25 views
0

我有一个Django的网站,我用我的views.py文件,像这样的列表:的Python blocktrans与不工作

EventsList = [] 

EventsList.append({'ipaddress':'192.168.200.1', 'starttime':'02/12/2013 13:59:42', 'endtime':'02/12/2013 14:59:42'}); 

EventsList.append({'ipaddress':'192.168.200.2', 'starttime':'02/12/2013 13:59:42', 'endtime':'02/12/2013 14:59:42'}); 

EventsList.append({'ipaddress':'192.168.200.3', 'starttime':'02/12/2013 13:59:42', 'endtime':'02/12/2013 14:59:42'}); 

在我的HTML页面,我要做到以下几点:

<p><b>{% blocktrans with len(EventsList) as Count %}{{ Count }}</b> events detected from <b>{{ first_session_start_time }}</b> to <b>{{ last_session_end_time }}</b>.{% endblocktrans %}</p> 

,但我得到的页面加载错误:

Exception Type: TemplateSyntaxError 
Exception Value:  
Could not parse the remainder: '(Events)' from 'len(Events)' 

如何解决这个问题?

回答

1

你做错了。在模板中,您需要length模板标签:

<p><b>{% blocktrans with EventsList|length as Count %}{{ Count }}</b> events detected from <b>{{ first_session_start_time }}</b> to <b>{{ last_session_end_time }}</b>.{% endblocktrans %}</p> 

在模板,你不能执行Python代码。模板语言有自己处理事物的方式。

+0

谢谢,事件列表|长度是报告,它是长度为0,当其实有几个项目。 – user1646528 2013-02-12 18:25:50

+0

你是否在请求上下文中正确传递了'EventsList'? – 2013-02-12 18:46:37

+0

我传递它像这样:EventsList = [] EventsList.append({'ipaddress':'192.168.200.1','starttime':'02/12/2013 13:59:42','endtime':' 02/12/2013 14:59:42'})response_dict ['EventsList'] = EventsList return render_to_response('mypage.html',response_dict,context_instance = RequestContext(request)) – user1646528 2013-02-13 11:47:13