Улучшение системы работы с фото: добавлена команда очистки битых записей и оптимизация обработки изображений

This commit is contained in:
2026-01-06 09:25:37 +03:00
parent 0f19542ac9
commit 288716deba
14 changed files with 535 additions and 122 deletions

View File

@@ -461,13 +461,16 @@ class ProductImporter:
if not urls:
return
# Проверяем есть ли уже главное фото
has_main = product.photos.filter(is_main=True).exists()
# Создаём задачи для каждого URL
for idx, url in enumerate(urls):
# FIX: ProductPhoto не имеет is_main, используется только order
task = {
'product_id': product.id,
'url': url,
'order': idx, # Первое фото (order=0) автоматически главное
'order': idx,
'is_main': (idx == 0 and not has_main) # Первое фото главное только если еще нет главного
}
self.photo_tasks.append(task)
@@ -503,6 +506,9 @@ class ProductImporter:
if not urls:
return
# Проверяем есть ли уже главное фото
has_main = product.photos.filter(is_main=True).exists()
# Скачиваем и сохраняем каждое изображение
for idx, url in enumerate(urls):
try:
@@ -515,10 +521,10 @@ class ProductImporter:
filename = parsed_url.path.split('/')[-1]
# Создаём ProductPhoto
# FIX: ProductPhoto не имеет is_main, используется только order
photo = ProductPhoto(
product=product,
order=idx # Первое фото (order=0) автоматически главное
order=idx,
is_main=(idx == 0 and not has_main) # Первое фото главное только если еще нет главного
)
# Сохраняем файл