Was ist hier falsch? Iterieren über ein Wörterbuch in Django Vorlage

7

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 ....

    
AP257 07.02.2010, 21:22
quelle

3 Antworten

29

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.

    
MattH 07.02.2010, 22:19
quelle
1

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.

    
Ignacio Vazquez-Abrams 08.02.2010 03:45
quelle
0

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 .

    
Bjorn Tipling 07.02.2010 21:25
quelle

Tags und Links