2012-11-22 4 views
4

, 내가 장고 책, 그리고 장고 문서를 공부하고, 속성, 나는이 예를 이해할 수 없다 :이 템플릿에 관한파이썬/루프 목록 장고 그래서

<ul> 
{% for athlete in athlete_list %} 
    <li>{{ athlete.name }}</li> 
{% endfor %} 
</ul> 

을하고 난 몰라 컨텍스트를 코딩하는 방법. 목록에서 "이름"이라는 속성을 어떻게 얻을 수 있습니까? 사전을 만들면이 예제와 같이 for 루프를 사용할 수 없습니다. 나는 이런 식으로 코딩했지만 제대로 동작하지 않습니다 :

athlete_list = {'name' = ['Athlete1', 'Athlete2', 'Athlete3']} 
Context({'athlete_list':athlete_list}) 

내가 정상 목록 (안 사전)도 작동하지 않습니다 템플릿의 "athlete.name"에 athlete_list 변수를 변경합니다. 나는 그것이 책에서 실수라고 생각하지 않으며 아마도 매우 쉽게 풀 수 있지만, 나는 그것을 얻을 수 없다.

답변

5

나는 athlete_listAthlete 모델을 포함하는 QuerySet 객체입니다.

유지하기 위해 실제로 가장 좋은 예가 될 것으로 보이지 않는 .... - 단지 http://www.djangobook.com/en/2.0/chapter04.html 보았다 - 모델은 다음 .name 또는 .age 또는 .sport이든 ...

갱신이있을 것이다 템플릿 그대로, 예를 들어 목록의 컨텍스트를 반환 할 수 있습니다. 예 :

[ {'name': 'bob'}, {'name': 'jim'}, {'name': 'joe'} ] 
+0

답변 해 주셔서 감사합니다. 그들은 컨텍스트를 코딩하는 방법을 언급하지 않았고, 지금은 이것이 가장 좋은 예가 아니라는 것을 알 수 있습니다. :) – Chris

2

귀하의 athlete_list는 {{ athleate_list.name }}

문자열 # ['Athlete1', 'Athlete2', 'Athlete3']의 목록이 될 것입니다 실제로 당신이 .을 통해 대신 템플릿 너무 []

을 통해 사전 키에 액세스 할 수있는 템플릿에서 딕셔너리

<ul> 
{% for athlete_name in athlete_list.name %} 
    <li>{{ athlete_name }}</li> 
{% endfor %} 
</ul> 

입니다

+0

이것은 물론 효과가 있지만 책에있는 그대로 템플릿을 사용하고 싶습니다. 고마워요 어쨌든 – Chris

3

템플릿을 유지하려면 아래를 반환해야합니다.

athlete_list = ({'name':'Athlete1'},{'name':'Athlete2'},{'name':'Athlete3'}) 

Context({'athlete_list':athlete_list})