В моем приложении Django есть следующая модель:
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
)
Я установил MEDIA_ROOT в каталог с именем / hmedia / внутри моего веб-корня Apache и для MEDIA_URL установлено значение'http://localhost/hmedia/'
.Похоже, это сработало - я успешно загрузил пару изображений через сайт администратора Django, и я могу просмотреть эти изображения через http://localhost/hmedia/images/[filename]
.И сайт администратора Django фактически показывает мне имя файла и ссылки на действующий URL для каждого изображения, и ссылки работают.
Моя проблема в том, что я не могу понять, как получить 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}}.
Как получить URL изображения в моем шаблоне?Как шаблон интерфейса администратора Django делает это?(Я бродил в каталоге шаблонов администратора, но не могу найти то, что ищу.)