我在这方面是很新的,所以如果问题的水平很低,请原谅。
我试图通过21课笔记的列表变量的形式,得到每一课笔记的内容,其中每一个包含几个子类别。这些内容将通过HTML显示在网页中。
课程笔记名为lesson1,lesson2,. lesson21
我的代码如下所示:
{% for i in range(1, 22) %}
{% for content in "lesson" + "str(i)" %}
<div class="col-md-9 contents" id="{{content[0]}}">
{{content[2] | safe}}
</div>
{% endfor %}
{% endfor %}我显然知道我所做的是不正确的,但我决定把"lesson" + "str(i)"留在那里,这样你就可以看到我希望做的事情了。当然,这里是我想要lesson1,lesson2等的地方。
所以你可以希望看到我在努力做什么,但我不知道如何去做,也找不到答案。如何使第二个for循环运行到lesson1、lesson2等,直到lesson21
content[2]是该特定子类别内容列表中的占位符。每堂课包含2到6张清单。
更多信息:
我收到的第一个答案是好的,但对我不太好,因为我的清单已经是清单了。即
lesson1 = [ ['reference-titel', 'part-titel', """content"""], ['reference-titel2', 'part-titel2', """content"""], [......] ]
而且,我正在上面构建一个下拉菜单,如下所示:
`<div class="dropdown">
<a href="#" data-toggle="dropdown" class="dropdown-toggle">
The Web and Basic HTML
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
{% for content in lesson1 %}
<li><a href="#{{content[0]}}">{{content[1]}}</a></li>
{% endfor %}
</ul>
</div>`因此,如果我把所有21个课程的所有不同的子类别都放在一个单独的、非常大的子类别列表中,我就无法为它们分别制作下拉菜单,每个菜单都有各自的标题。
或者我会?如果是的话,我该怎么做?
发布于 2016-01-01 17:10:52
您应该使用列表而不是单独的变量。因此,与其:
lession1 = [category1, category2, ...]
lession2 = [category10, category11, ...]使用:
lessons = [
[category1, category2, ...],
[category10, category11, ...]
]因此,您可以遍历模板中的所有lessions:
{% for lesson in lessons %}
{% for content in lesson %}
<div class="col-md-9 contents" id="{{content[0]}}">
{{content[2] | safe}}
</div>
{% endfor %}
{% endfor %}编辑:
如果您有变量x1,x2,x3,x4,...,x20,那么拥有一个列表而不是单独的变量总是更好和可能的。
lessons = [
[
['reference-titel', 'part-titel', """content"""],
['reference-titel2', 'part-titel2', """content"""],
[...]
],
[
['reference-tite10', 'part-tite100', """content"""],
['reference-titel11', 'part-tite200', """content"""],
[...]
]
]
template = `{% for lesson in lessons %}
<div class="dropdown">
<a href="#" data-toggle="dropdown" class="dropdown-toggle">
The Web and Basic HTML
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
{% for content in lesson %}
<li><a href="#{{content[0]}}">{{content[1]}}</a></li>
{% endfor %}
</ul>
</div>
{% endfor %}`为了提高可读性,您可以定义一个类而不是最内部的数组:
class Drop:
def __init__(self, reference, part, content):
self.reference = reference
self.part = part
self.content = content
lessons = [
[
Drop('reference-titel', 'part-titel', """content"""),
Drop('reference-titel2', 'part-titel2', """content"""),
Drop(...)
],
[
Drop('reference-tite10', 'part-tite100', """content"""),
Drop('reference-titel11', 'part-tite200', """content""")
]
]
template = `{% for lesson in lessons %}
<div class="dropdown">
<a href="#" data-toggle="dropdown" class="dropdown-toggle">
The Web and Basic HTML
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
{% for content in lesson %}
<li><a href="#{{content.reference}}">{{content.part}}</a></li>
{% endfor %}
</ul>
</div>
{% endfor %}`发布于 2016-01-02 08:39:42
@hege_hegedus给我指明了正确的方向。我把所有不同的变量放在一个大列表中,比如:
lesson = [ [ ['reference-titel', 'part-titel', """content"""], ['reference-titel2', 'part-titel2', """content"""], [...] ], [ ['reference-tite10', 'part-tite100', """content"""], ['reference-titel11', 'part-tite200', """content"""], [...] ] ]
然后,我在彼此内部使用了两个循环,例如:
{% for items in lesson %} {% for content in items %} <div class="col-md-9 contents" id="{{content[0]}}"> {{content[2] | safe}} </div> {% endfor %} {% endfor %}
这给了我我想要的。
https://stackoverflow.com/questions/34558065
复制相似问题