Django 템플릿에서 배열 요소에 액세스하는 방법은 무엇입니까?


167

arrDjango 템플릿으로 배열이 전달됩니다. 전체 배열을 반복하는 대신 배열 (예 : arr[0]arr[1]) 에서 배열의 개별 요소에 액세스하고 싶습니다 .

장고 템플릿에서 그렇게 할 수 있습니까?


4
당신은 다음과 같은 항목에 액세스 할 수 있습니다 arr.0, arr.1... 또 다른 해결책은 : 자신의 템플릿 태그 쓰기 arr|array_item: "0" 또는 같은 것을.
rphonika

답변:


304

Django 템플릿의 점 표기법은 파이썬에서 네 가지 다른 표기법에 사용됩니다. 템플릿에서 다음 foo.bar중 하나를 의미 할 수 있습니다.

foo[bar]       # dictionary lookup
foo.bar        # attribute lookup
foo.bar()      # method call
foo[bar]       # list-index lookup

일치하는 것을 찾을 때까지이 순서대로 시도합니다. 따라서 foo.3객체가 3을 키로하는 dict가 아니며 3이라는 속성이 없으며 3이라는 메서드가 없기 때문에 목록 인덱스를 얻을 수 있습니다.


3
처음이 아니고 더 좋아지지 foo['bar']않습니까?
Bob Stein

2
가변 인덱스를 사용하여 목록 항목에 액세스 할 수있는 방법이없는 것 같습니다 :(
Vicky Chijwani

@VickyChijwani에 동의하십시오 : 위의 네 번째 옵션은 유효하지 않습니다. Django 템플릿은 변수로 목록 인덱스 조회를하지 않는 것 같습니다
ehacinom

@hiyume 그것을 극복하는 방법?
Csaba Toth

공식 문서에서 찾을 수 없다는 것을 이해하지 못합니다. 해당 게시물에 대한 소스를 제공 할 수 있습니까? 나는 이것이 현재 어떻게 대답을 받아들이지 않는지 놀랐습니다.
카사 나

149
arr.0
arr.1

기타


11
어떻게 전 같은 동적를 인쇄하려면 : arr.variablename
Nandha 쿠마

마법의 숫자없이 이것을 할 수있는 방법이 있습니까? 다시 말해 .0 .1 .2 등을 "이름 지정"하는 것은 무엇입니까? array [ "first name"], array [ "last name"] 등과 같이.
cyberjoac

이 경우 @cyberjoac은 dict를 사용합니다. 보기에서 : d = { 'first_name': 'foo', 'last_name': 'bar'}. {{d.first_name}} 템플릿에서 제대로 작동합니다.
Ofri Raviv


7

몇 가지 정보를 render요구할 때 coctext: exampel :

return render(request, 'path to template',{'username' :username , 'email'.email})

다음과 같이 템플릿에 액세스 할 수 있습니다. for variabels :

{% if username %}{{ username }}{% endif %}

for array :

{% if username %}{{ username.1 }}{% endif %}
{% if username %}{{ username.2 }}{% endif %}

배열 객체의 이름을 지정할 수 views.py있으며 열은 다음과 같이 사용합니다.

{% if username %}{{ username.first }}{% endif %}

다른 문제가 있으면 도와 드리겠습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.