मेरे पास सूचियों के साथ मूल्यों के साथ एक शब्दकोश है (आपको एक उदाहरण देने के लिए छोटा कर दिया गया है):
छवि फ़ाइलें:
for prop in context['results'][0]:
imageFolderPath ='./media/uploaded/prop_images/' + prop.property_ID
if os.path.isdir(imageFolderPath):
imageFileList[prop.property_ID] = [f for f in listdir(imageFolderPath) if isfile(join(imageFolderPath, f))]
context['imageFiles'] = [imageFileList]
जब मैं इसे सीधे टेम्पलेट में प्रिंट करता हूं तो यह दिखाई देता है:
[{'R01': ['02secparking27.jpg', '10-2017-ff-detail-1200x627.jpg', '1200x820.jpg', '12539233_web1_180704-VMS-parking-lot.jpg', '16.12.01-519196006.jpg',],
'R02': ['asdasd.jpg','12131asad.jpg','asdasdasd.jpg']}]
टेम्पलेट में, मैं छवि नामों को पुनरावृत्त करके एक्सेस करने का प्रयास कर रहा हूं लेकिन मुझे कोई मान नहीं मिल रहा है।
{% for keys,values in imageFiles %}
{% for x in values %}
<p> {{X}} </p>
{% endfor %}
{% endfor %}
त्रुटि प्राप्त करना
"लूप के लिए अनपैक करने के लिए 2 मान चाहिए; 9 मिले।"
मैंने अन्य पोस्ट में सुझाए गए imageFiles.items को भी आजमाया और ऐसा लगता है कि यह काम नहीं कर रहा है।
मैं क्या गलत कर रहा हूं? मेरा दिमाग यहाँ तोड़ रहा है।
2 जवाब
तो, आप अंदर जा रहे हैं:
context['imageFiles'] = [imageFileList]
जो बिना किसी अच्छे कारण के काफी भ्रमित करने वाला है। जिसे आप imageFileList
कह रहे हैं, वह एक सूची नहीं है, बल्कि एक शब्दकोश है। फिर, आप टेम्पलेट में जो पास करते हैं वह एक एकल तत्व के साथ एक सूची है, अर्थात् शब्दकोश।
फिक्स: डिक्शनरी में पास करें (यह और भी अच्छा होगा यदि आपने imageFileList
का नाम बदलकर कुछ कम भ्रमित किया हो):
context['imageFiles'] = imageFileList
आपके टेम्पलेट में:
{% for key, value in imageFiles.items %}
{% for x in values %}
<p> {{x}} </p>
{% endfor %}
{% endfor %}
ग्रहण
dct = your input dictionary
कोड:
[value for keys, values in dct.items() for value in values]
आपको फ़ाइल नामों की नीचे दी गई सूची देगा:
['02secparking27.jpg',
'10-2017-ff-detail-1200x627.jpg',
'1200x820.jpg',
'12539233_web1_180704-VMS-parking-lot.jpg',
'16.12.01-519196006.jpg',
'asdasd.jpg',
'12131asad.jpg',
'asdasdasd.jpg']
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।