Разрешён NULL для delivery_date в черновиках заказов

- orders/models/delivery.py: delivery_date теперь null=True, blank=True
- Валидация: для черновиков дата необязательна, для обычных заказов - обязательна
- Миграция: 0003_allow_null_delivery_date_for_drafts.py
This commit is contained in:
2026-01-05 01:35:59 +03:00
parent ef0f935aa9
commit e8d232158c
2 changed files with 28 additions and 1 deletions

View File

@@ -62,8 +62,10 @@ class Delivery(models.Model):
# Дата и время доставки
delivery_date = models.DateField(
null=True,
blank=True,
verbose_name='Дата доставки',
help_text='Дата, когда должна быть выполнена доставка'
help_text='Дата, когда должна быть выполнена доставка (обязательна для не-черновиков)'
)
time_from = models.TimeField(
@@ -131,6 +133,13 @@ class Delivery(models.Model):
return
# Для не-черновиков полная валидация
# Проверка: дата доставки обязательна
if not self.delivery_date:
raise ValidationError({
'delivery_date': 'Для не-черновиков дата доставки обязательна'
})
# Проверка: для курьерской доставки должен быть адрес
if self.delivery_type == self.DELIVERY_TYPE_COURIER:
if not self.address: