wie zeige ich eine Liste mit Dictionaries in einem Template?
Verfasst: Samstag 22. Februar 2025, 19:20
Ich möchte ein Bißchen Statistik in meinem Rechentrainer machen.
Zunächst eine Liste, wieviele Aufgaben in den jeweiligen Kategorien erledigt wurden und dann auch noch ein Ranking der fleißigsten Schülerinnen und Schüler und Lerngruppen.
Dazu erstelle ich jeweils eine Liste mit Dictionaries, das habe ich sogar alleine hinbekommen. Ich schaffe es aber noch nicht, diese ordentlich in einem Template zu integrieren.
Am einfachsten scheint die Liste mit den Kategorien:
erzeugt:
In meinem Template bin ich so weit:
aber beim Eintrag {{wert}} ist es mir noch nicht gelungen, die beiden Einträge zu trennen. "kategorie" zeigt den "slug" Wert und ich hätte gerne den Namen, den ich unter "kategorie.name" gespeichert habe.
Und bei der Bestenliste habe ich noch mehr Einträge in jedem Dictionary. Pro Schülerinnen/Schüler ist dies gespeichert:
(ich hoffe, ihr schimpft nicht wieder über mein sj und hj - ich habe hier doch wieder Schuljahr und Halbjahr abgekürzt
)
Zunächst eine Liste, wieviele Aufgaben in den jeweiligen Kategorien erledigt wurden und dann auch noch ein Ranking der fleißigsten Schülerinnen und Schüler und Lerngruppen.
Dazu erstelle ich jeweils eine Liste mit Dictionaries, das habe ich sogar alleine hinbekommen. Ich schaffe es aber noch nicht, diese ordentlich in einem Template zu integrieren.
Am einfachsten scheint die Liste mit den Kategorien:
Code: Alles auswählen
kategorien = Kategorie.objects.all().order_by('zeile')
kategorienliste = []
for kategorie in kategorien:
protokoll = Protokoll.objects.filter(kategorie = kategorie)
anzahl = {"kategorie": kategorie, "anzahl": protokoll.count()}
kategorienliste.append(anzahl)
print(kategorienliste[:3])
Code: Alles auswählen
[{'kategorie': <Kategorie: addieren>, 'anzahl': 41490}, {'kategorie': <Kategorie: subtrahieren>, 'anzahl': 25376}, {'kategorie': <Kategorie: verdoppeln>, 'anzahl': 28519}]
Code: Alles auswählen
{% for kategorie in kategorien %}
<tr>
{% for wert in kategorie.values %}
<td>
{{wert}}
</td>
{% endfor %}
<tr>
{% endfor %}
Und bei der Bestenliste habe ich noch mehr Einträge in jedem Dictionary. Pro Schülerinnen/Schüler ist dies gespeichert:
Code: Alles auswählen
schuelerliste = {"profil": s.id, "hjsumme": hjsumme, "sjsumme": sjsumme, "summe": summe}
