Я создаю страницу продуктов для проекта электронной коммерции, я уже успешно загрузил изображения с помощью 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="">