Ich versuche eine HTML-Vorlage als Teil eines Django-Projekts zu erstellen. Es würde dynamische Akkordeons enthalten (die Anzahl solcher Akkordeons wird durch den Wert bestimmt, der von saves.py an es übergeben wird), und der Inhalt in jedem wird auch dynamisch von ansichten.py übergeben (ich habe diesen Teil noch nicht einmal gebaut).Dynamisch erstellte Akkordeons funktionieren nicht richtig in Django/Python/HTML Projekt
Ich habe Googeln versucht, aber immer mit einem von zwei Szenarien enden. Eine, bei der alle Akkordeonknöpfe nur das erste Akkordeon öffnen/schließen. Zwei, keiner der Akkordeonknöpfe funktioniert. Im Idealfall sollten alle Akkordeonknöpfe funktionieren und sie müssen jeweils ihren eigenen Inhalt öffnen/schließen. Ich vermute, das Problem liegt darin, dynamisch auf das div zu verweisen, das den Inhalt enthält. Aber ich kann keine Lösung finden.
Bitte helfen!
Code:
<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="[email protected]">
<div class="panel panel-default" id="[email protected]">
<div class="panel-heading">
<h4 class="panel-title">
<button type="button" class="btn btn-info" data-toggle="collapse" data-target="#[email protected]" href="#[email protected]">{{ s.s_name }}</button>
</h4>
</div>
<div id="[email protected]" class="panel-collapse collapse in">
<div class="panel-body">{{ s.s_name }}</div>
</div>
</div>
</div>
i++;
{% endfor %}
</div>
Modified Code:
{% 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>
Mögliches Duplikat: [Numerisch für Schleife in Django-Vorlagen] (http://stackoverflow.com/q/1107737/1324033) – Sayse
Sie scheinen nach dem Zufallsprinzip zu versuchen, die Syntax aus völlig verschiedenen Vorlagensystemen in Django zu verwenden. Sie müssen die Dokumente tatsächlich lesen und Djangos Syntax verwenden. –
@Sayse das ist kein gutes Duplikat; Alle OP Bedürfnisse sind 'Forloop.Counter'. –