Изображения не обслуживаются в Джанго - PullRequest
0 голосов
/ 29 марта 2019

Мои медиафайлы, которые я загрузил, используя форму в этом вопросе Кажется, что представление не сохраняет всю информацию в моей модели загружается в правильную папку / media / images, которую я определил.Тем не менее, при доступе он возвращает 404. Я пытался следовать инструкциям на https://stackoverflow.com/a/39359264, но все еще получаю 404.

мой шаблон кода

{% for books in object_list %}
    <img src="{{ books.cover_pic.url }}">
{% endfor %}

настройки.py

STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

my urls.py

urlpatterns =[
    path('', views.index, name='index'),
] 
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

код моей модели для изображения:

cover_pic = models.FileField(null=True, blank=True, upload_to='images/')

моя папка мультимедиа находится в базовом каталоге (рядом с управлением.py).Что я пропускаю?

1 Ответ

0 голосов
/ 30 марта 2019

Попробуй это.У меня так работает.Вы также попробуете какой-то метод, который я прокомментировал в models.py в случае чего-либо.

settings.py

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

MEDIA_ROOT = (
BASE_DIR
)


MEDIA_URL = '/media/'

models.py ...

#Here you can try changing FileField to ImageField if you like.
# You can also try directory uploads as image without backslash
#cover_pic = models.ImageField(upload_to='images')

cover_pic = models.FileField(upload_to='images/')

urls.py (проект)

if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

шаблон (.html)

  {% for books in object_list %}
    <img src="{{ books.cover_pic.url }}">
{% endfor %}
...