2012-03-28 4 views
6

Gibt es eine get() Funktion für diese Stelle?Kann ich auf bestimmte Schlüsselwerte im Wörterbuch von django Vorlage zugreifen?

{% for key, value in choices.items %} 
    <li>{{key}} - {{value}}</li> 
{% endfor %} 

Von Python habe ich die Funktion get(), um Werte von einem bestimmten Schlüssel zu erhalten. Aber ich konnte keinen passenden Weg finden, dies mit Django Template Tags zu tun. Also frage ich mich, ist es möglich? Ich brauche bestimmte Werte zu erhalten, da Schleifen mit einer Menge neuer Linien in der HTML-Quelle fügt hinzu.

Oder sollten Sie auf die Ausgabe in der Ansicht achten, bevor Sie sie an die Vorlage senden, welche Methode ist besser?

Antwort

9

können Sie {{ choices.items.key }} verwenden, um ein bestimmtes dict Element zuzugreifen.

Es gibt keinen Grund, sich um Leerzeichen im HTML-Code, obwohl zu kümmern; Der typische Endanwender hat keine wirklichen Probleme damit, es zu lesen, und wenn er neugierig ist, benutzt er immer einen DOM-Viewer oder führt ihn durch einen HTML-Beautifier.

+0

, das ist wahr. Es ist nur, dass ich ein bisschen genervt bin, wenn ich sehe, dass es unordentlich aussieht ^^; – starcorn

+1

Sie können das ehemalige nicht tun ('elections.items ['key']') mit django Vorlage Sprache –

+1

Antwort aktualisiert; vermischte es mit jinja, wo es funktioniert – ThiefMaster

4

Wenn Sie einen bestimmten Wert möchten, fügen Sie sie einfach auf den gepunkteten Pfad:

{{ choices.items.somekey }} 

werden Sie den Wert choices.items['somekey'], wenn choices.items ein dict ist.

1

Wenn Entscheidungen Typ ist DICT wie {}.

Wenn Auswahl.Artikel der Typ DICT ist.

{{choices.items.somekey|default:""}} 

Versuchen wenig Beispiel.

# In Views.py 
def dict_test(request): 
    my_little_dict = {"hi": "Hello"} 
    .... 
# in Template 
{{my_little_dict.hi}} 
3

Ich denke, Sie sind jetzt weit fortgeschritten, nur um meinen Punkt zu teilen. Sie könnten auch

{% for value in dict %} 
    {{value}}                 
{% endfor %} 

oder mit Schlüssel, Wert wie

{% for key,value in dict.items %} 
    {{key}} : {{ value }} 
{% endfor %} 
0

auf diese Weise tun können Sie festlegen, wie {{ choices.key_name }} Es ist für mich gearbeitet. Einfach einfach

0
{{ choices.values }} 

Dies gibt Ihnen eine Liste aller Werte im Wörterbuch auf einmal. ja

Verwandte Themen