@bond_1013
Начинающий веб-разработчик

Почему не добавляется картинка через ImageField?

Не находит картинку по заданному пути, пишет что файл не найден.
5dd901b65bcdd690646329.jpeg
Файл: settings.py
STATIC_URL = '/static/'

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'news/image')

STATICFILES_DIRS = (os.path.join(BASE_DIR, 'media'),)


Файл urls.py
from django.contrib import admin
from django.urls import path, include
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('mainApp.urls')),
    path('news/', include('news.urls')),
    path('webexample/', include('webexample.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Файл models.py
from django.db import models

class Articles(models.Model):
    title=models.CharField(max_length=120)
    body=models.TextField()
    har=models.TextField(null=True)
    main_photo = models.ImageField(upload_to='image/', blank=True, height_field=None, width_field=None, max_length=100,null=True)
    date=models.DateTimeField()

    def __str__(self):
        return self.title

Вывод картинки:

{% extends "main/wrapper.html" %}
{% block content %}
  <h2 class="text-info">{{articles.title}}</h2>
  <h6 class="text-info">Опубликовано: {{articles.date|date:"Y-m-d в H:i:s"}} </h6>
  <p>{{articles.body|safe|linebreaks}}</p>
  <img src="{{articles.main_photo.url}}" alt="">
  <div>
    <h3>Характеристики:</h3>
    <p>{{articles.har|safe|linebreaks}}</p>
  </div>
{% endblock %}

Саму папку создаёт по заданному пути, и картинка тоже там, но путь прописывается
127.0.0.1:8000/media/image/silver-imac-displaying-...
и пишет файл не найден
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
@bond_1013 Автор вопроса
Начинающий веб-разработчик
Заменил в файле urls.py urlpatterns на следующий код и всё заработало
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('mainApp.urls')),
    path('news/', include('news.urls')),
    path('webexample/', include('webexample.urls')),
]
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root= settings.MEDIA_ROOT)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы