Добавлена автогенерация и валидация уникальности артикулов для всех типов товаров
- Добавлен миксин SKUUniqueMixin для единообразной валидации артикулов - Валидация проверяет уникальность SKU среди Product, ProductKit, ProductCategory, ConfigurableProduct - Реализована автогенерация артикулов для ConfigurableProduct (формат VAR-XXXXXX) - Добавлен новый тип счетчика 'configurable' в SKUCounter - Обновлены формы Product, ProductKit, ProductCategory, ConfigurableProduct - Рефакторинг методов clean() в формах: валидация имени вынесена в clean_name() - Добавлена функция generate_configurable_sku() в sku_generator.py - Обновлена функция ensure_sku_unique() для проверки ConfigurableProduct - Добавлен метод save() в модель ConfigurableProduct для автогенерации SKU - Обновлен шаблон configurableproduct_form.html с отображением help_text для SKU Код стал чистым, без дублирования логики валидации.
This commit is contained in:
@@ -452,6 +452,16 @@ class ConfigurableProduct(BaseProductEntity):
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
"""При сохранении - генерируем артикул если не задан"""
|
||||
# Генерация артикула для новых вариативных товаров
|
||||
if not self.sku:
|
||||
from ..utils.sku_generator import generate_configurable_sku
|
||||
self.sku = generate_configurable_sku()
|
||||
|
||||
# Вызов родительского save (генерация slug и т.д.)
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
"""
|
||||
Физическое удаление вариативного товара из БД.
|
||||
|
||||
Reference in New Issue
Block a user