2010-02-24 5 views
5

이미지 URL과 해당 제목 세트를 가져옵니다. 해시 또는 연관 배열을 만들려고했지만 데이터가 덮어 써서 배열의 마지막 항목으로 끝나는 것 같습니다.장고 배열 또는 목록 출력?

예 :

thumbnail_list = [] 
for file in media: 
    thumbnail_list['url'] = file.url 
    thumbnail_list['title'] = file.title 

나는 두 개의 목록을 만들고 더 큰 목록에 넣기까지했습니다.

thumbnail_list.append('foo') 
thumbnail_urls.append('bar') 
all_thumbs = [thumbnail_list], [thumbnail_urls] 

나는이 데이터의 아웃 링크를 만들려고 해요 : 나는 점점 가까이 계속

<a href="image-url">image title</a> 

을,하지만 난 한 번에 모든 데이터 너무 많은 데이터를 통해 또는 루핑 결국 내 장고 템플릿.

아이디어가 있으십니까?

편집 : 아마도 zip()이 필요한 것일 수 있습니까?

questions = ['name', 'quest', 'favorite color'] 
answers = ['lancelot', 'the holy grail', 'blue'] 
for q, a in zip(questions, answers): 
    print 'What is your {0}? It is {1}.'.format(q, a) 

답변

5

당신은 당신이 목록을 만드는 반면, 파이썬의 연관 데이터 구조를하는 dict을합니다.

하지만 문제를 잘 모르겠습니다. 왜 그냥 템플릿으로 media 수집을 통과하고 다음과 같이 반복하지 :

thumbnail_list = [] 
for file in media: 
    file_info = {} 
    file_info['url'] = file.url 
    file_info['title'] = file.title 
    thumbnail_list.append(file_info) 

{% for file in thumbnail_list %} 
    <a href="{{ file.url }}">{{ file.title }}</a> 
{% endfor %} 
: 귀하의 의견을 바탕으로

, 나는 지금 이런 식으로 뭔가를 찾고있는 가정

{% for file in media %} 
    <a href="{{ file.url }}">{{ file.title }}</a> 
{% endfor %} 

편집

URL, 제목 등을 처리 한 후에 목록을 만든 다음 각 파일에 대해 해당 목록에 사전을 추가 할 수 있습니다. 당신이 적용 할 다른 논리를이 경우이 조금 더 나은 캡슐화 자신의 클래스를 만들 수

또는 :

class FileInfo(object): 
    def __init__(self, file): 
     self.url = file.url # do whatever 
     self.title = file.title # do whatever 

thumbnail_list = [] 
for file in media: 
    thumbnail_list.append(FileInfo(file)) 
+0

안녕 조 - 나는 문자열을 출력하지도 URL에 교체 할 필요가 제목이없는 이미지. 그래서 파이썬 쪽에서 만 할 수 있습니다, 맞습니까? – Shu

+0

UGH! 나는 이것을 일찍이 봐야했다. 정말 고맙습니다! FileInfo 클래스가 아무 것도 반환하지 않거나 그대로 호출 할 수 있습니까? 예를 들어; 자기를 돌려 보내라. – Shu

+0

'__init__' 메소드는 파이썬 생성자입니다. 반환 값이 새로운 객체임을 암시하기 때문에 아무것도 리턴 할 필요가 없습니다. 'file_info = FileInfo (...)' –