Невозможно динамически рендерить изображения Django в шаблонах
Итак, я пытался заставить изображения, загруженные через интерфейс администратора, отображаться в шаблоне, но по какой-то странной причине он просто не отображает изображения. Он отображает любые другие типы данных, но НЕ изображения.
Из файла Settings.py:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Из appvew.py:
class ProjectsListView(ListView):
model = Projects
context_object_name = 'projects'
template_name = 'myportfolio/portfolio.html'
appurls.py:
urlpatterns =[
path('home/', views.ProjectsListView.as_view()),
# path('projects/', )
]
html template:
{% load static %}
</head>
<body>
<h1><p>This is my portfolio</p></h1>
{% for project in projects %}
<img src="{{project.screenshot}}" alt="No image found">
{% endfor %}
</body>
</html>
Сообщение об ошибке на терминале:
Not Found: /portfolio/home/projects/images/shutterstock_253580635_square.jpg Не найдено: /portfolio/home/projects/images/mountains.jpg [25/Mar/2022 14:16:06] ←[33m "GET /portfolio/home/projects/images/shutterstock_253580635_square.jpg HTTP/1.1" 404 2560←[0m [25/Мар/2022 14:16:06] ←[33m "GET /portfolio/home/projects/images/mountains.jpg HTTP/1.1" 404 2500←[0m
вывод :( :
Я проверил свой старый проект с практически такой же настройкой, и он работает. С другой стороны, в этом проекте отображаются только названия объектов и другие свойства, но не изображения
Попробуйте это
<img src="{{project.screenshot.url}}" alt="No image found">