Dies ist hoffentlich eine ziemlich einfache Frage. Mein Endziel ist es, meine Datenbankeinträge in einer Tabelle anzeigen zu können, die ich über die Spaltenüberschriften sortieren kann. Ich habe die documentation auf Zyklus-Tags lesen, aber nicht wissen, dass sie damit meinen 'row1'
und 'row2'
:Verwendung von Django Cycle Tag
{% for o in some_list %}
<tr class="{% cycle 'row1' 'row2' %}">
...
</tr>
{% endfor %}
Zweitens: Wie würde ich es richtig umzusetzen in meine Vorlage? Ich bin mit einem sehr einfachen JS library, was die Sortierung ermöglicht:
seite.html
{% if Variable %}
<table class="sortable">
<tr>
<th>Title 1</th>
<th>Title 2</th>
<th>Title 3</th>
<th>Title 4</th>
<th>Title 5</th>
</tr>
{% for stuff in Variable %}
<tr class="{% cycle 'stuff' %}">
<td>
<a href="{% url 'detail_page' stuff.id %}">
{{ stuff.Name|capfirst }}</a>
</td>
</tr>
{% endfor %}
</table>
{% else %}
<p>No Results Found</p>
{% endif %}
mein models.py auf, falls Sie es:
def view(request):
Variable = database.objects.all()
context = {
'Variable': Variable,
}
return render(request, 'app/page.html', context)
EDIT: Es scheint, dass ich die ganze Zeit den richtigen Code hatte, nur etwas ungleichmäßig angewendetes CSS, das meinen Tisch nicht wie einen Tisch aussehen ließ. Das Cycle-Tag wurde nicht benötigt, nur die for-Schleife. Es sah auch besser nach einer anderen Tabellenzeile hinzugefügt:
{% for stuff in Variable %}
<tr>
<td>{{ stuff.Name|capfirst }}</td>
<td>{{ stuff.Number|capfirst }}</td>
</tr>
{% endfor %}
Ich glaube nicht, dass Sie das 'cycle' Tag hier verwenden möchten. Es wird nur zwischen einer Anzahl von Werten hin und her geschaltet, während der Forloop iteriert. Die "rows" in den Docs wechseln einfach zwischen zwei Klassennamen, jedes Mal wenn der Forloop läuft (dh bei der ersten Iteration, fügen Sie 'row1' als Klassenname, bei der zweiten Verwendung' row2', bei der dritten Verwendung 'row1', on hinzu die vierte 'row2' etc.) – rnevius
Du hast absolut recht, ich sollte nicht. Ich nahm den Cycle-Tag mit, kreierte eine weitere Reihe und konnte sehen, wie mein Tisch "Form" annahm. Es scheint, ich hatte es die ganze Zeit, nur etwas ungleichmäßig angewandtes CSS, das es seltsam aussehen ließ. Kannst du mir auch kurz erklären, welche Klassennamen sind? Ich nehme an mit Zyklus, ich erstelle meine eigenen Variablen (row1 und row2). Ich bin sehr neu im Programmieren und im Selbstunterricht. – Kervvv
Sie sind nur CSS-Klassennamen (Strings). Also würde der Code in den Docs zwischen 'class =" row1 "' und 'class =" row2 "' hin und her wechseln, während es Elemente in der Liste gibt. – rnevius