# Руководство по использованию изображений на фронтенде
## Обзор
Система автоматически служит изображения разных размеров в зависимости от контекста:
- **Списки товаров**: миниатюры (150×150) - быстрая загрузка
- **Карточки товаров**: средний размер (400×400) - хороший баланс
- **Галереи и модальные окна**: большой размер (800×800) - высокое качество
- **Полноэкранный просмотр**: оригинал - максимальное качество
## Использованные размеры в шаблонах
### 1. all_products_list.html (Объединённый список товаров и комплектов)
```django
```
**Размер на диске**: 438B (93% экономия)
**Использование**: Таблица со списком товаров, быстрая загрузка
---
### 2. product_list.html (Список только товаров)
```django
```
**Размер на диске**: 438B (93% экономия)
**Использование**: Табличное отображение товаров
---
### 3. productkit_list.html (Список комплектов)
```django
```
**Размер на диске**: 438B (93% экономия)
**Использование**: Табличное отображение комплектов
---
### 4. product_detail.html (Детали товара с галереей)
**Миниатюры в сетке:**
```django
```
**Файл**: 438B
**Использование**: Маленькие превью для клика
---
**Модальное окно галереи (carousel):**
```django
```
**Файл**: 5.6K
**Использование**: Полноэкранный просмотр, хорошее качество
---
### 5. productkit_detail.html (Детали комплекта)
**Боковая панель с фото:**
```django
```
**Файл**: 2.9K
**Использование**: Кликабельные превью в боку
---
**Модальное окно при клике:**
```django
```
**Файл**: 5.6K
**Использование**: Полноэкранный просмотр одного фото
---
### 6. category_detail.html (Детали категории)
```django
```
**Файл**: 2.9K
**Использование**: Картинка категории в сетке
---
## Доступные методы
Каждая Photo-модель имеет методы для получения URL разных размеров:
```python
photo = ProductPhoto.objects.first()
# Получить URL миниатюры (150×150)
photo.get_thumbnail_url()
# → /media/products/thumbnails/image_12345.jpg (438B)
# Получить URL среднего размера (400×400)
photo.get_medium_url()
# → /media/products/medium/image_12345.jpg (2.9K)
# Получить URL большого размера (800×800)
photo.get_large_url()
# → /media/products/large/image_12345.jpg (5.6K)
# Получить URL оригинала (без изменений)
photo.get_original_url()
# → /media/products/originals/image_12345.jpg (6.1K)
# Получить все URL за раз
photo.get_all_urls()
# → {
# 'thumbnail': '/media/products/thumbnails/...',
# 'medium': '/media/products/medium/...',
# 'large': '/media/products/large/...',
# 'original': '/media/products/originals/...'
# }
```
То же самое для ProductKitPhoto и ProductCategoryPhoto.
---
## Рекомендации по использованию
### Списки и таблицы
```django
{% if item.photos.all %}
{% endif %}
```
**Почему**: Список может содержать 50+ товаров, миниатюры загружаются мгновенно
---
### Карточки товаров
```django