Задать вопрос

Почему Django на локалке не отображает media?

Все прописано, pillow установлена. Сохранить картинку в папку получается без проблем. Но при попытке отобразить загруженную картинку на странице выдает в терминале "Not Found: /media/img.jpg".
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

models.py
class Post(models.Model):
	title = models.CharField(max_length=150, db_index=True)
	slug = models.SlugField(max_length=150, blank=True, unique=True)
	body = models.TextField(blank=True, db_index=True)
	tags = models.ManyToManyField('Tag', blank=True, related_name='posts')
	image = models.ImageField(blank=True)

В url.py все прописано
urlpatterns +=static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


В шаблоне
{%extends 'blog/base_blog.html'%}
{%block content%}
	<h1 class="mt-5">
		{{post.title}}
	</h1>
	<p>{{post.body}}</p>
		{{post.image.url}}
		<img src="{{post.image.url}}"/>
{%endblock%}

Если в шаблоне просто прописать
{{post.image.url}}
То на странице отображается точный путь к файлу /media/img.jpg
Совершенно не понимаю в чем причина. Интернет не помог. Везде делают так как у меня.
  • Вопрос задан
  • 5286 просмотров
Подписаться 1 Простой 13 комментариев
Решения вопроса 1
@nitron_5 Автор вопроса
Итак, ошибка оказалась довольной глупой. Плохо почитал документацию.
Строка
urlpatterns +=static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

была прописана в url.py приложения, а нужно было прописать его в корневом url.py.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы