Próbuję uzyskać dostęp do elementów dyktowania za pomocą klawiszy rozpoczynających się od znaku podkreślenia. Na przykład:Dostęp do elementów dyktujących z wiodącymi podkreśleniami w szablonach Django
my_dict = {"_source": 'xyz'}
Próbuję uzyskać do nich dostęp w szablonie Django. Oczywiście zdaję sobie sprawę, że nie można uzyskać dostępu do podkreślonych zmiennych Pythona z szablonu Django (ponieważ są one uważane za prywatne w Pythonie), ale jest to obiekt dict, w którym każdy niezmienny obiekt jest prawidłowym kluczem.
Nie mogę uzyskać dostępu do powyższego dicta w szablonie Django za pomocą {{my_dict._source}}, więc zakładam, że Django temu zapobiega. Czy to jest dokładne?
Mam nadzieję, że Django zrobi coś normalnego ze zmiennymi, które zaczynają się od podkreślenia, np. Wciąż poszukuje dict (pierwsza rzecz ma rzekomo próbuje), ale odmawia wykonania wyszukiwania atrybutów, wywołań metod i indeksowania list indeksów od podkreślonej zmiennej prefiksowanej byłby nieprawidłowy. Szybko tracę jednak nadzieję.
Dla przypomnienia, wiem, że ktoś zasugeruje zmianę dyktatu, ale w rzeczywistości jest to wielopoziomowy słownik zwracany przez bibliotekę surowców podczas wykonywania żądania API REST w instancji ElasticSearch.
Jeśli jest to rzeczywiście django można utworzyć niestandardowy tag szablonu, aby powrócić prywatny var. – Colleen
wyszukiwanie w google "django template underscore vars" ujawnia: https://groups.google.com/forum/?fromgroups=#!topic/django-users/J8c0j2_iEcc - tzn. Tak, musisz utworzyć niestandardowy szablon etykietka. Chociaż wątek jest stary, wątpię, aby ta funkcjonalność się zmieniła. – Colleen
To nie jest prywatny var, jest to całkowicie legalny klucz dyktujący, coś, co powinno być dostępne przy pomocy wyszukiwania dyktującego. Naprawdę próbuję uniknąć tworzenia tagu szablonu. Zwłaszcza, że obiekty dict mogą stać się dość głębokie jak {{my_dict.hits._source._text}}. – rstuart85