Вывод изображения Django
Пытаюсь практиковаться с Django, пробую создать новости на сайте. В новостях выводится вся необходимая информация кроме изображения. Не находит картинку Not Found: /news/img/img4.png
models.py
from django.db import models
class Articles(models.Model):
objects = models.Manager()
title = models.CharField(max_length=120)
post = models.TextField()
date = models.DateTimeField()
img = models.ImageField(upload_to='img', blank=True)
def __str__(self):
return self.title
urls.py
from django.urls import include, path, re_path
from django.views.generic import ListView, DetailView
from news.models import Articles
urlpatterns = [
re_path(r'^$', ListView.as_view(queryset=Articles.objects.all().order_by('-date')[:20],template_name='news/posts.html')),
path('<int:pk>/', DetailView.as_view(model=Articles, template_name="news/post.html")),
]
posts.html
{% extends "mainApp/html/wrapper.html" %}
{% block content %}
<div class="container">
<h1 id="news">Новости</h1>
</div>
<div class="grid-posts">
<div class="container">
<div class="row">
{% for post in object_list %}
<div class="col-md-6">
<div class="card">
<img src='{{post.img}}' class="card-img-top">
<div class="card-body">
<a href="/news/{{post.id}}"><h3>{{post.title}}</h3></a>
<h5>{{post.date|date:"D m, Y"}}</h5>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
{% endblock %}
Ответы (1 шт):
Автор решения: Adilzhan Sarsen
→ Ссылка
В шаблоне используй ссылку на изображение
<img src='{{post.img.url}}' class="card-img-top">
В главный urls.py добавь
from django.conf import settings
...
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
При этом в settings.py у тебя должны быть настроены пути к медиа
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')