我正在FAQ页面上,在该页面上,根据其类别将问题和答案传递给模板部分。我想减少html的数量,并使用div部分作为模板
/ViewsFile/Categories/ViewCategory[@Name = "Bookings"]
我的主要html包含以下代码:
<div id="{{id}}">
<div class="h2">{{category}}</div>
{% for q in faqs %}
{% if q.category == '{{category}}' %}
<ul class="collapsible">
<li>
<div class="collapsible-header">{{q.question}}></div>
<div class="collapsible-body"><span>{{q.answer}}</span></div>
<div class="divider"></div>
</li>
</ul>
{% endif %}
{% endfor %}
</div>
我只能传递变量ID和类别。 有没有办法进入for循环?
答案 0 :(得分:0)
我认为解决方案是在views.py中创建类别列表。
cat = [ 'Category1', 'Category2', 'Category3','Category4']
将其传递到上下文字典,然后在div节周围放置其他“ for循环”。
{% for c in cat %}
<div id="">
<div class="h4">{{c}}</div>
{% for q in faqs %}
{% if c == q.category %}
<ul class="collapsible">
<li>
<div class="collapsible-header">{{q.question}}</div>
<div class="collapsible-body"><span>{{q.answer}}</span></div>
<div class="divider"></div>
</li>
</ul>
{% endif %}
{% endfor %}
</div>
{% endfor %}
这将生成一个模板,其中的常见问题列表分为几部分。