Ich versuche, über ein Wörterbuch von Modellwerten in einer Django-Vorlage zu iterieren - ich möchte den verbose_name jedes Modellfeldes neben seinem Wert auflisten.
Folgendes habe ich in models.py:
%Vor%Und in views.py:
%Vor%Und in der Vorlage:
%Vor%Aber ich bekomme nur eine komische, verzerrte Liste wie:
%Vor%Es funktioniert nicht einmal, wenn ich in models.py fest codierte Werte verwende (wie oben auskommentiert).
Was ist hier falsch? Ich habe versucht, das stundenlang auszuarbeiten: (
---------- AKTUALISIERT ---------------
Probieren mit
%Vor%und in Vorlage:
%Vor%erzeugt nur eine leere Liste ....
Um ein Wörterbuch zu iterieren, brauchen Sie nicht:
%Vor%Aber ich würde vorschlagen, zuerst das Wörterbuch aus der Funktion zu holen:
Views.py:
%Vor%Und dann:
%Vor%Aber nur, weil ich nicht genau weiß, wie stark das Dereferenzieren des Templating-Systems sein kann. Da Sie wissen, wie man es abschätzt, sparen Sie sich die Mühe, den Renderer daran zu hindern, es auszuarbeiten.
Das Iterieren über ein Diktat ergibt seine Schlüssel. Ich weiß nicht, warum Django denkt, dass du eine unvollständige Sequenzerweiterung für den Schlüsselnamen machen willst, anstatt eine Ausnahme zu schmeißen, aber ich werde es auf ANDEREN einer der Eigenarten von Djangos Template-Engine kritzeln / p>
Wie auch immer, ja, hole key
vom Dict in deiner for-Schleife, dann benutze key
und dict.key
darin.
Sie bekommen die seltsamen Ergebnisse, weil ich denke, dass Sie über die Zeichen einer Zeichenfolge iterieren. Eine for-Schleife in Django-Vorlagen ist nicht die gleiche wie in Python. Versuchen Sie, ein Objekt zu verwenden und über die Eigenschaftenaccessoren for object in my objects
zu iterieren und verwenden Sie stattdessen object.prop1
object.prop2
.
Tags und Links python django django-templates