gpt4 book ai didi

python - django 模板问题(访问列表)

转载 作者:行者123 更新时间:2023-11-28 19:59:32 24 4
gpt4 key购买 nike

我正在为我的第一个 Django 网站编写模板。

我将字典列表传递给变量中的模板。我还需要传递其他一些包含 bool 标志的列表。 (注意:所有列表长度相同)

模板看起来像这样:

<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 不会按照您的意愿去做。

for loop在一个循环中有许多有用的属性。

forloop.counter     The current iteration of the loop (1-indexed)forloop.counter0    The current iteration of the loop (0-indexed)forloop.revcounter  The number of iterations from the end of the loop (1-indexed)forloop.revcounter0 The number of iterations from the end of the loop (0-indexed)forloop.first       True if this is the first time through the loopforloop.last        True if this is the last time through the loopforloop.parentloop  For nested loops, this is the loop "above" the current one

您可能会使用 forloop.counter0 来获取您想要的从零开始的索引;不幸的是,Django 模板语言不支持可变数组索引(你可以做 {{ foo.5 }},但你不能做 {{ foo.{{bar}} }}).

我通常做的是尝试和安排 View 中的数据,以便更容易在模板中呈现。例如,您可以在 View 中创建一个由字典组成的数组,这样您所要做的就是遍历该数组并从各个字典中准确提取您需要的内容。对于非常复杂的事情,我什至创建了一个 DataRow 对象,该对象可以正确格式化表中特定行的数据。

关于python - django 模板问题(访问列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4063515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com