django изображение не загружается из media_root - PullRequest
0 голосов
/ 20 апреля 2020

Я создаю страницу продуктов для проекта электронной коммерции, я уже успешно загрузил изображения с помощью django admin в каталог изображений в базе root моего проекта. В настоящее время я сталкиваюсь с проблемой: когда я пытаюсь отобразить изображения товара на странице товаров в магазине, он не работает.

как мне заставить его работать?

выглядит мой файл урегулирования .py вот так:

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

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static','static_root')

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static_files'),
]



TEMPLATE_DIRS = [
    os.path.join(BASE_DIR, 'templates'),
]


мой файл urls.py выглядит так:

from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from products.views import home, all_products_view



urlpatterns = [    
    path('',home, name="home"),
    path('products/',all_products_view, name="all_products"),
    path('admin/', admin.site.urls),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, ducument_root = settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, ducument_root = settings.MEDIA_ROOT)

ниже приведен код шаблона товаров, куда предполагается загружать изображения

{% extends "base.html" %}


{% block products %}

{% for product in products %}

<div class="col-lg-3">
    <div class="card-deck">
        <div class="card p-2  mb-2">
            {% for item in product.productimage_set.all %}
               <img src="{{ item.image.url }}'" alt="">
            {% endfor %}


        </div>
    </div>  
</div>    
{% endfor %}
{% endblock %}

когда я проверяю элемент в браузере, это ссылка на изображение sr c, которую я получаю, которая является правильной ссылкой для источника изображений

<img src="/media/products/images/cabbage.jpg'" alt="">
...