Исправлена валидация SKU: разрешено сохранение существующего артикула
При редактировании товара проверка зарезервированных префиксов теперь пропускается, если артикул не изменился. Это позволяет редактировать товары с автоматически сгенерированными артикулами. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -38,13 +38,17 @@ class SKUUniqueMixin:
|
||||
sku = sku.strip()
|
||||
|
||||
# Проверяем зарезервированные префиксы
|
||||
# Но пропускаем проверку, если это редактирование и артикул не изменился
|
||||
sku_upper = sku.upper()
|
||||
for prefix, entity_type in self.RESERVED_PREFIXES.items():
|
||||
if sku_upper.startswith(prefix):
|
||||
raise forms.ValidationError(
|
||||
f'Префикс "{prefix}" зарезервирован для автоматической генерации артикулов {entity_type}. '
|
||||
f'Пожалуйста, используйте другой артикул или оставьте поле пустым для автогенерации.'
|
||||
)
|
||||
is_existing_sku = self.instance.pk and self.instance.sku == sku
|
||||
|
||||
if not is_existing_sku:
|
||||
for prefix, entity_type in self.RESERVED_PREFIXES.items():
|
||||
if sku_upper.startswith(prefix):
|
||||
raise forms.ValidationError(
|
||||
f'Префикс "{prefix}" зарезервирован для автоматической генерации артикулов {entity_type}. '
|
||||
f'Пожалуйста, используйте другой артикул или оставьте поле пустым для автогенерации.'
|
||||
)
|
||||
|
||||
# Проверяем во всех моделях
|
||||
models_to_check = [
|
||||
|
||||
Reference in New Issue
Block a user