【发布时间】:2016-06-30 17:08:51
【问题描述】:
我正在尝试构建一个 html 模板作为 Django 项目的一部分。它将包含动态手风琴(此类手风琴的数量由从views.py传递给它的值确定),并且每个手风琴中的内容也将从views.py动态传递(我什至还没有构建这部分)。
我试过谷歌搜索,但总是以两种情况之一结束。所有手风琴按钮仅打开/关闭第一个手风琴的地方。第二,手风琴按钮都不起作用。理想情况下,所有手风琴按钮都应该可以工作,并且每个按钮都需要打开/关闭自己的内容。我猜问题在于动态引用包含内容的 div。但我无法修复。
请帮忙!
代码:
<div class="container">
<h2>Mock Tests</h2>
<p>Click the category you wish to view.</p>
@{int i=0;}
{% for s in sections %}
<div class="panel-group" id="accordion_@i">
<div class="panel panel-default" id="panel_@i">
<div class="panel-heading">
<h4 class="panel-title">
<button type="button" class="btn btn-info" data-toggle="collapse" data-target="#collapseone_@i" href="#collapseOne_@i">{{ s.s_name }}</button>
</h4>
</div>
<div id="collapseOne_@i" class="panel-collapse collapse in">
<div class="panel-body">{{ s.s_name }}</div>
</div>
</div>
</div>
i++;
{% endfor %}
</div>
修改代码:
{% block body %}
<div class="container">
<h2>Mock Tests</h2>
<p>Click the category you wish to view.</p>
<div class="panel-group" id="accordion">
{% for s in sections %}
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<button type="button" class="btn btn-info" data-parent="#accordion" data-toggle="collapse" data-target="accordion_{{ forloop.counter }}" href="accordion_{{ forloop.counter }}">{{ s.s_name }}</button>
</h4>
</div>
<div id="accordion_{{ forloop.counter }}" class="panel-collapse collapse in">
<div class="panel-body">{{ s.s_name }}</div>
</div>
</div>
{% endfor %}
</div>
</div>
【问题讨论】:
-
您似乎在随机尝试使用来自 Django 中完全不同模板系统的语法。您需要实际阅读文档,并使用 Django 的语法。
-
@Sayse 这不是一个好的副本;所有的 OP 需求都是
forloop.counter。 -
@DanielRoseman - 是的,我在真正考虑其用法之前写了该评论(请注意,这不是它被投票反对的内容)。我将其包含在内,因为这似乎是 op 使用他们的 I 变量所做的事情
-
@DR - 我实际上是从一个代码开始的,但尝试了我在网上找到的任何有用的语法,老实说,我没有看到提出原始语法的意义,因为它本身不起作用而且结构&逻辑大体相同。我添加了 i 变量,因为我试图从这篇文章中收集一些有用的东西:stackoverflow.com/questions/30613968/… 如果不是太麻烦,你能告诉我正确的语法吗?
标签: python html django twitter-bootstrap