Dict Schlüssel mit Leerzeichen in Django Vorlagen

Ich versuche, ein Wörterbuch aus meiner view.py an der HTML-Vorlage wie zu präsentieren:

test = { 'works': True, 'this fails':False } 

Und in der Vorlage:

Das funktioniert problemlos:

 {{ test.works }} 

Aber ein Wörterbuchschlüssel, der einen leeren Raum zwischen Wörtern wie "this fails" hat, funktioniert nicht:

 {{ test.this fails }} 

Ich bekomme diesen Fehler:

Konnte den Rest nicht parsen: ' fails' aus 'this fails'

Wie kann ich dieses Problem überwinden? Ich bin nicht derjenige, der die Modelle füllt, also kann ich die Schlüssel des Dict nicht ändern, um Räume zu entfernen.

3 Solutions collect form web for “Dict Schlüssel mit Leerzeichen in Django Vorlagen”

Der Filter, den du willst, ist so

 @register.filter(name='getkey') def getkey(value, arg): return value[arg] 

Und benutzt mit

 {{test|getkey:'this works'}} 

Quelle: http://www.bhphp.com/blog4.php/2009/08/17/django-templates-und-direktoren

Ich kenne keine Standardlösung in Django. Ich denke, es ist möglich mit einem Vorlagenfilter.

Sie interessieren sich vielleicht für diesen Artikel http://push.cx/2007/django-template-tag-for-dictionary-access (der Autor verwendet Template-Tag-Begriff aber in Wirklichkeit ist es ein Template-Filter)

Ich hoffe, es hilft

Das sieht mir nicht gut an. Kannst du folgendes machen

 {{ test['works'] }} {{ test['this fails'] }} 

Dies ist, wie Wörterbuch Zugriff in Python in der Regel funktioniert.

  • Bearbeiten von Grenzen, um den Weißraum innerhalb einer Handlung in Matplotlib loszuwerden
  • Wie unterscheidet sich \ v von \ x0b oder \ x0c?
  • Entfernen Sie den Platz am Ende der Zeichenfolge, aber behalten Sie das neue Zeilensymbol
  • So drucken Sie Variablen ohne Leerzeichen zwischen Werten [duplizieren]
  • Schreiben von weiß-Raum abgegrenzten Text menschlich lesbar in Python
  • Entfernen von Leerzeichen in Python mit string.whitespace
  • Was ist Python Whitespace und wie funktioniert es?
  • Python ist die beste Programmiersprache der Welt.