Исправление проблем с сохранением адреса, получателя и даты доставки
- Исправлено: адрес теперь сохраняется для черновиков заказов - Исправлено: получатель корректно предзаполняется при редактировании заказа - Исправлено: адрес при редактировании отображается в режиме 'новый' для возможности редактирования - Исправлено: дата доставки корректно предзаполняется при редактировании заказа - Исправлено: при редактировании получателя обновляется существующий объект вместо создания нового - Улучшена логика обработки Delivery для черновиков (создание с опциональными полями) - Улучшена логика обновления получателя через загрузку заказа из БД с select_related
This commit is contained in:
@@ -121,6 +121,16 @@ class Delivery(models.Model):
|
||||
"""Валидация модели"""
|
||||
super().clean()
|
||||
|
||||
# Для черновиков пропускаем строгую валидацию
|
||||
if self.order and self.order.status and hasattr(self.order.status, 'code') and self.order.status.code == 'draft':
|
||||
# Для черновиков только проверяем время, если оно указано
|
||||
if self.time_from and self.time_to and self.time_from >= self.time_to:
|
||||
raise ValidationError({
|
||||
'time_to': 'Время окончания доставки должно быть позже времени начала'
|
||||
})
|
||||
return
|
||||
|
||||
# Для не-черновиков полная валидация
|
||||
# Проверка: для курьерской доставки должен быть адрес
|
||||
if self.delivery_type == self.DELIVERY_TYPE_COURIER:
|
||||
if not self.address:
|
||||
|
||||
Reference in New Issue
Block a user