В настоящее время я программно импортирую товары в свой каталог товаров, однако у меня возникают трудности с загрузкой изображений для каждого товара.Вот как выглядит мой код:
# frobshop/custom_utils/product_importer.py
from oscar.apps.catalogue.models import Product
...
for product in my_product_import_list:
...
product_entry = Product()
product_entry.title = my_product_title
product_entry.product_class = my_product_class
product_entry.category = my_category
product_entry.primary_image = "product_images/my_product_filename.jpg"
product_entry.save()
Такие детали, как название продукта и класс продукта, успешно сохраняются при проверке с использованием сервера разработки, однако я не уверен, как настроить изображение для каждого продукта.
Вся папка product_images
изначально находилась за пределами моего каталога media
, но, поскольку я не получила никаких результатов, я скопировала и вставила всю папку моих изображений в каталог media
, но все ещебез результатов.Я предполагаю, что пропущено довольно много шагов, и, возможно, существует соглашение о том, как размещать изображения в каталоге мультимедиа.Однако я не уверен, где найти эти шаги и соглашения.
Вот часть моего settings.py
файла, который касается моих установленных приложений, медиа-каталога и статических файлов:
# frobshop/frobshop/settings.py
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
'compressor',
'widget_tweaks',
] + get_core_apps(['custom_apps.shipping', 'custom_apps.payment', 'custom_apps.checkout'])
...
STATIC_ROOT = 'static'
STATIC_URL = '/static/'
MEDIA_ROOT = 'media'
MEDIA_URL = '/media/'
Для большей ясности вот мой urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import include, url
from oscar.app import application
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^i18n/', include('django.conf.urls.i18n')),
path('admin/', admin.site.urls),
url(r'', application.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)