2013-04-02 8 views
19

देखें में छविफिल्ल्ड यूआरएल प्राप्त करें मैं Django व्यू में ImageField पूर्ण पथ प्राप्त करने का प्रयास कर रहा हूं, इसलिए मैं छवि खोल सकता हूं, इसे लिख सकता हूं और फिर उपयोगकर्ता को इसकी सेवा कर सकता हूं।Django:

मुझे मीडिया फ़ोल्डर में सहेजी गई छवि के लिए पूर्ण पथ प्राप्त करने में समस्या है।

item = get_object_or_404(Item, pk=pk) 
absolute_url = settings.MEDIA_ROOT + str(item.image.path) 

मैं त्रुटि मिलती है, कि item.image पथ (The 'banner' attribute has no file associated with it.) नहीं है। item.image ImageField है और मैं जानना चाहता हूं कि छवि फ़ील्ड में सहेजी गई छवि का पूर्ण पथ कैसे प्राप्त करें (Django व्यू के भीतर)।

उत्तर

28

सही तरीके से कॉन्फ़िगर किए जाने पर, .url: item.image.url का उपयोग करें। दस्तावेज़ here देखें।

+3

मैं .url उपयोग करने की कोशिश, लेकिन यह काम नहीं करता है .. यह टेम्पलेट्स में काम करता है, लेकिन ध्यान में रखते हुए नहीं:/ – Byteme

+0

शायद यह तथ्य यह है कि मैं बढ़ाया hve के कारण होती है ImageField बैनरफ़िल्ल्ड में ... लेकिन मैंने जो कुछ किया है, वहां साफ विधि ओवरराइट की गई है। – Byteme

+0

@ user2225675 आप छवि फ़ाइलों का प्रबंधन कैसे करते हैं? लगता है कि 'item.image' में इसकी सापेक्ष फ़ाइल गुम है। शायद यह अपलोड करने की गलत कॉन्फ़िगरेशन के कारण हुआ था या आप टेम्पलेट में विभिन्न आइटमों को आजमा रहे हैं और देख रहे हैं? – okm

2

मैं सिर्फ पता लगा कि समस्या क्या ... निरपेक्ष छवि पथ फ़ाइल चर में सहेजा गया है था देखते हैं।

उदाहरण (ध्यान में रखते हुए):

item = Item.objects.get(pk=1) 
print item.file # prints out full path of image (saved in media folder)