मैं अपने Django ऐप्लिकेशन में निम्नलिखित मॉडल मिल गया है:टेम्पलेट के भीतर ImageField URL कैसे प्राप्त करें?
class Image(models.Model):
image = models.ImageField(
upload_to='images/',
height_field='height',
width_field='width'
)
credit = models.CharField(max_length=50, blank=True)
caption = models.TextField(blank=True)
article = models.ForeignKey(Article)
width = models.PositiveIntegerField(
blank = True, null = True,
editable = False,
default = 0
)
height = models.PositiveIntegerField(
blank = True, null = True,
editable = False,
default = 0
)
मैं एक निर्देशिका/hmedia/अंदर मेरे अपाचे वेब जड़ कहा जाता है MEDIA_ROOT निर्धारित किया है, और मैं 'http://localhost/hmedia/'
को MEDIA_URL निर्धारित किया है। ऐसा लगता है कि मैंने काम किया है - मैंने Django व्यवस्थापक साइट के माध्यम से सफलतापूर्वक कुछ छवियां अपलोड की हैं, और मैं उन छवियों को http://localhost/hmedia/images/[filename]
के माध्यम से देख सकता हूं। और Django व्यवस्थापक साइट वास्तव में मुझे फ़ाइल नाम दिखाता है, और प्रत्येक छवि के लिए लाइव यूआरएल के लिंक, और लिंक काम करते हैं।
मेरे समस्या यह है, मैं बाहर काम नहीं कर सकता मेरे टेम्पलेट में URL या इन चित्रों में से फ़ाइल नाम पाने के लिए:
<ul>
{% for image in article.image_set.all %}
<li>Caption: "{{image.caption}}", Credit: "{{image.credit}}", URL: "{{image.url}}"</li>
{% endfor %}
</ul>
इस उत्पादन में ऊपर टेम्पलेट परिणाम:
<ul>
<li>Caption: "here's an image caption", Credit: "some photographer", URL: ""</li>
<li>Caption: "Another caption here", Credit: "Another photographer", URL: ""</li>
</ul>
दूसरे शब्दों में, यह प्रत्येक छवि के कैप्शन और क्रेडिट गुणों को सही ढंग से आउटपुट करता है, लेकिन यह {{image.url}} के लिए कुछ भी आउटपुट नहीं करता है।
मैं अपने टेम्पलेट में छवि का यूआरएल कैसे प्राप्त करूं? Django व्यवस्थापक इंटरफ़ेस टेम्पलेट यह कैसे करता है? (मैं व्यवस्थापक टेम्पलेट्स निर्देशिका में चारों ओर निहित है, लेकिन मैं के लिए क्या देख रहा हूँ नहीं मिल सकता है।)
तुम बस अपने आप छवि मैदान पर .path और .url का उपयोग करने की जरूरत है उपयोग कर सकते हैं - तो 'image.image.path', 'Image.image.url'। जैसा कि, आप मॉडल उदाहरण पर उन विशेषताओं तक पहुंचने का प्रयास कर रहे हैं, जहां वे मौजूद नहीं हैं। – AdamKG