Zugriff auf Dict-Elemente mit führenden Unterstrichen in Django-Vorlagen

Ich versuche, auf Elemente eines Diktats zuzugreifen, mit Schlüsseln, die mit dem Unterstrich beginnen. Beispielsweise:

my_dict = {"_source": 'xyz'}

Ich versuche, auf sie in einer Django-Vorlage zuzugreifen. Offensichtlich erkenne ich, dass man nicht auf unterstrichene Pythonvariablen aus einer Django-Vorlage zugreifen kann (weil sie als privat in Python betrachtet werden), aber das ist ein dict-Objekt, bei dem ein unveränderliches Objekt ein gültiger Schlüssel ist.

Ich kann nicht auf das obige Dict in einer Django-Vorlage mit {{my_dict._source}} zugreifen, also nehme ich an, dass Django es verhindert. Ist das genau?

Ich bin sehr gehofft Django macht etwas mit Variablen, die mit Unterstrich beginnen, wie immer noch Dict-Lookups (das erste, was angeblich versucht wird), aber weigert sich, Attribut-Lookups, Methodenaufrufe und Listenindex-Lookups zu machen, da eine unterstrichene vorangestellte Variable ungültig wäre. Ich verliere schnell die Hoffnung.

Für den Rekord weiß ich, dass jemand vorschlägt, nur den Dict zu ändern, aber das ist eigentlich ein mehrsprachiges Wörterbuch, das von der Rohbibliothek zurückgegeben wird, wenn die REST-API-Anfrage auf einer ElasticSearch-Instanz ausgeführt wird.

One Solution collect form web for “Zugriff auf Dict-Elemente mit führenden Unterstrichen in Django-Vorlagen”

Die docs erwähnen, dass man keinen variablen start mit einem unterstrich haben kann:

Variablennamen müssen aus jedem Buchstaben (AZ), einer beliebigen Ziffer (0-9), einem Unterstrich (aber sie dürfen nicht mit einem Unterstrich beginnen) oder einem Punkt bestehen.

Aber du kannst ganz einfach einen benutzerdefinierten Vorlagenfilter schreiben, um die Wörterbuchmethode des Wörterbuchs nachzuahmen:

 @register.filter(name='get') def get(d, k): return d.get(k, None) 

und

 {{ my_dict|get:"_my_key" }} 
  • Effizient XML in Elasticsearch bringen
  • Erstellen Sie die Begriffsabfrage auf dem Feld, das in einem anderen Feld mit elasticsearch-dsl-py enthalten ist
  • Wie kann ich den Dateisystem-Cache in Java oder Python nutzen?
  • Elasticsearch Bulk-Index in Chunks mit PyEs
  • Wie bekomme ich elasticsearch, um eine genaue Match-Abfrage durchzuführen?
  • MultiTermVectors in der Elasticsearch Java
  • Python ist die beste Programmiersprache der Welt.