Я могу загрузить изображения в определенный каталог, но не могу просмотреть их в шаблоне (Страница не найдена (404)) - PullRequest
1 голос
/ 30 мая 2019

Я пытаюсь добавить изображение загрузки в форму администратора в моем проекте Django, который я нашел на GitHub . Я могу загрузить изображение в папку my_app(catalog)/media/images/image.png, но когда я пытаюсь вызвать его в шаблоне, я вижу только тот значок изображения, который появляется, когда изображения нет.

settings.py

STATIC_URL = '/static/'

MEDIA_URL = '/media/'

MEDIA_ROOT  = os.path.join(BASE_DIR, 'catalog/media')

model.py

class Book(models.Model):
    image = models.ImageField(blank=True, null = True, upload_to='images')

book_detail.html

img src="{{ book.image.url}}" width="250"

views.py

class BookDetailView(generic.DetailView):
    model = Book

urls.py

from django.urls import path
from . import views
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('', views.index, name='index'),
    path('book/create/', views.BookCreate.as_view(), name='book_create'),
    path('books/', views.BookListView.as_view(), name='books'),
    path('book/<int:pk>', views.BookDetailView.as_view(), name='book-detail'),

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

Вот так это выглядит (я печатаю {{book.image}} рядом с рисунком (images/screenshot_4.png):

enter image description here

Это ошибка, которую я получаю:

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

Хорошо, я узнал об этом, потратив много времени на это.img src = "{{book.image.url}}" width = "250" строка в шаблоне должна выглядеть следующим образом: img src = "../ media / {{book.image.url}}" width = "250".

Надеюсь, это поможет кому-то с такой же проблемой.

0 голосов
/ 30 мая 2019

Возможно, вы уронили ']' в конце своих urlpatterns или, может быть, я ошибаюсь

...