Прежде чем я объясню, у меня возник вопрос. Я делаю блог, и сообщения имеют изображение заголовка. Я загружаю это изображение, используя admin, когда создаю сообщение для своего блога. Является ли этот образ «статическим» или «медиа»?Как отображать изображения с ImageField в Django?
В любом случае, у меня есть мой проект, созданный следующим образом: mysite - мой проект, блог - мое приложение. У меня есть папка с именем static внутри блога. Внутри этой статической папки находятся еще четыре папки - css, images, fonts, js.
В settings.py, я это установить:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Мой models.py выглядит следующим образом:
class Post(models.Model):
...
header_image = models.ImageField('article_header_image', upload_to = 'blog/static/images/articleimages')
Теперь, когда я пытаюсь загрузить этот файл в качестве шаблона, его не отображается.
Я делаю это следующим образом:
{% for post in posts %}
<img src="{{post.header_image.url}}">
{% endfor %}
Другое дело, как я могу использовать upload_to аргумент для загрузки изображений в статической папке приложения без явного указания его? Я думаю, в этом проблема. Если я использую upload_to = 'static/images/articleimages', в папке mysite, содержащей manage.py, создается новая статическая папка.
Любая помощь очень ценится!
Почему вы не импортируете 'STATIC_ROOT' в' models.py' и используете его для создания пути загрузки? –
@RohitJain: Мне жаль, что я так глуп, но вы можете подробно рассказать о том, как это сделать? –
Вы можете сделать: 'from django.conf import STATIC_ROOT', а затем использовать его там. И хорошо быть глупым :) –