Benim Django uygulamasında aşağıdaki modeli var:Şablonda bir ImageField URL'si nasıl alınır?
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
)
I/hmedia/içinde benim Apache web kök denilen bir dizine MEDIA_ROOT set ettik ve 'http://localhost/hmedia/'
için MEDIA_URL kurdum. Bu işe yaramış görünüyor - Django yönetici sitesi aracılığıyla birkaç görüntüyü başarıyla yükledim ve bu görüntüleri http://localhost/hmedia/images/[filename]
aracılığıyla görüntüleyebiliyorum. Ve Django admin sitesi aslında dosya adını ve her bir resmin canlı URL'sini linkler ve bağlantılar çalışır.
Sorunum benim şablonunda bu görüntülerin URL'ler veya dosya almak nasıl çalışamaz, şudur: Bu çıktıda
<ul>
{% for image in article.image_set.all %}
<li>Caption: "{{image.caption}}", Credit: "{{image.credit}}", URL: "{{image.url}}"</li>
{% endfor %}
</ul>
yukarıdaki şablon sonuçları:
<ul>
<li>Caption: "here's an image caption", Credit: "some photographer", URL: ""</li>
<li>Caption: "Another caption here", Credit: "Another photographer", URL: ""</li>
</ul>
Başka bir deyişle, her bir resmin başlık ve kredi özelliklerini doğru bir şekilde çıkarır, ancak {{image.url}} için hiçbir şey çıkarmaz.
Resmin URL'sini şablonumda nasıl alabilirim? Django yönetici arayüzü şablonu bunu nasıl yapıyor? (Ben yönetici şablonları dizininde etrafında köklü ettik ama aradığım şeyi bulamıyorum.) Sen {{ image.image.url }}
& {{ image.image.path }}
ihtiyaç
kullanabilirsiniz 'Image.image.url'. Olduğu gibi, model özniteliğinde var olmayan bu özniteliklere erişmeye çalışıyorsunuz. – AdamKG