我正在为我的第一个Django网站编写模板。Django模板问题(访问列表)
我将一个字典列表传递给变量中的模板。我还需要传递其他一些列表,它们包含布尔标志。 (注:所有的列表具有相同的长度)
模板看起来是这样的:
<html>
<head><title>First page</title></head><body>
{% for item in data_tables %}
<table>
<tbody>
<tr><td colspan="15">
{% if level_one_flags[forloop.counter-1] %}
<tr><td>Premier League
{% endif %}
<tr><td>Junior league
<tr><td>Member count
{% if level_two_flags[forloop.counter-1] %}
<tr><td>Ashtano League
{% endif %}
</tbody>
</table>
{% endfor %}
</body>
</html>
我收到以下错误:
Template error
In template /mytemplate.html, error at line 7 Could not parse the remainder: '[forloop.counter-1]' from 'level_one_flags[forloop.counter-1]'
我不惊讶我得到这个错误,因为我只是想看看是否会工作。到目前为止,从文档中,我还没有发现如何通过索引(即通过枚举以外)获取列表中的项目。
有谁知道我可以通过模板中的索引访问列表?
嗯,Django开发人员似乎觉得这很愚蠢,因为循环迭代和序列索引有不同的基础。我敢肯定,我的做法是错误的。尽管如此,至少,由于您的信息,我可以访问该项目 - 只是索引是错误的。我将不得不从循环结构中找到正确的基于零的索引。 – skyeagle 2010-10-31 15:36:15
存在'counter0'。看到这里:http://docs.djangoproject。com/en/dev/ref/templates/builtins /#对于 – 2010-10-31 16:16:20
感谢Nick。我会记得下次使用这个(counter0) - 我知道django开发者不会留下类似的东西:)。 – skyeagle 2010-10-31 21:52:01