To może być proste, ale rozejrzałem się i nie mogłem znaleźć odpowiedzi. Jaki jest najlepszy sposób na odwołanie się do pojedynczego elementu na liście z szablonu Django?
Innymi słowy, jak zrobić odpowiednik {{ data[0] }}
w języku szablonów?
Dzięki.
python
django
django-templates
user456584
źródło
źródło
{{ data.foo }}
, gdziefoo
jest zmienna z wartością indeksu, a nie nazwą właściwości.Lepszy sposób: niestandardowy filtr szablonów: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
takie jak get my_list [x] w szablonach:
w szablonie
templatetags / index.py
jeśli
my_list = [['a','b','c'], ['d','e','f']]
możesz użyć{{ my_list|index:x|index:y }}
w szablonie, aby uzyskaćmy_list[x][y]
Działa dobrze z „dla”
Przetestowane i działa dobrze ^ _ ^
źródło
{% for id in article_details.heading.contents.article_ids %} {% if id.type == 'DOI' %} {{ article_details.heading.contents.article_ids.forloop.counter0.value }} {% endif %} {% endfor %}
{{ data.0 }}
powinno działać.Powiedzmy, że napisałeś
data.obj
django trydata.obj
idata.obj()
. Jeśli nie działają, próbujedata["obj"]
. W twoim przypadkudata[0]
można zapisać jako{{ data.0 }}
. Ale radzę wciągnąćdata[0]
widok i wysłać go jako osobną zmienną.źródło
@ jennifer06262016, zdecydowanie możesz dodać kolejny filtr, aby zwrócić obiekty wewnątrz zestawu django Queryset.
W takim przypadku wpisz w swoim szablonie coś takiego, jak to {{Queryset | index: x | get_item}}, aby uzyskać dostęp do jakiegoś obiektu słownika. Mi to pasuje.
źródło