2010-02-24 14 views
5

मैं छवि यूआरएल और उनके संबंधित खिताब का एक सेट खींच रहा हूं। मैंने हैश या एसोसिएटिव सरणी बनाने की कोशिश की है, लेकिन डेटा ओवरराइट लगता है, इसलिए मैं केवल सरणी में अंतिम आइटम के साथ समाप्त होता हूं।Django सरणी या सूची आउटपुट?

उदाहरण के लिए;

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> 

मैं करीब मिलती रहती है, लेकिन मैं में एक ही बार में बहुत अधिक डेटा या डेटा के सभी पाशन अंत मेरी django टेम्पलेट।

विचार?

संपादित करें: शायद ज़िप() मुझे क्या चाहिए?

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 संग्रह गुजरती हैं और इस तरह से पुनरावृति:

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

संपादित

अपनी टिप्पणी के आधार पर, मैं अब अनुमान आप कुछ इस तरह की तलाश में हैं:

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 %} 

आप एक सूची बना सकते हैं, फिर प्रत्येक फ़ाइल के लिए, यूआरएल, शीर्षक, या जो कुछ भी संसाधित करने के बाद उस सूची में एक शब्दकोश को जोड़ दें।

या, आप अपने ही वर्ग है कि यह एक छोटे से मामले में बेहतर आप लागू करने के लिए अन्य तर्क है समाहित बना सकते हैं:

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

हाय जो - मैं क्या करने की जरूरत के लिए एक स्ट्रिंग नहीं उत्पादन यूआरएल पर की जगह और भी कोई भी छवि जिनके पास शीर्षक नहीं है। तो मैं केवल पाइथन पक्ष पर ऐसा कर सकता हूं, सही? – Shu

+0

यूजीएच! मुझे पहले यह देखना चाहिए था। आपको बहुत - बहुत धन्यवाद! क्या उस वर्ग फ़ाइलइन्फो को कुछ भी वापस करना है या क्या मैं इसे कॉल कर सकता हूं? उदाहरण के लिए: .; स्वयं लौटें; – Shu

+0

'__init__' विधि पायथन कन्स्ट्रक्टर है, इसे किसी भी चीज़ को वापस करने की आवश्यकता नहीं है क्योंकि इसका वापसी मूल्य नई वस्तु के रूप में निहित है। 'file_info = FileInfo (...)' –

संबंधित मुद्दे