Исправление проблем с сохранением адреса, получателя и даты доставки
- Исправлено: адрес теперь сохраняется для черновиков заказов - Исправлено: получатель корректно предзаполняется при редактировании заказа - Исправлено: адрес при редактировании отображается в режиме 'новый' для возможности редактирования - Исправлено: дата доставки корректно предзаполняется при редактировании заказа - Исправлено: при редактировании получателя обновляется существующий объект вместо создания нового - Улучшена логика обработки Delivery для черновиков (создание с опциональными полями) - Улучшена логика обновления получателя через загрузку заказа из БД с select_related
This commit is contained in:
@@ -95,7 +95,22 @@ class AddressService:
|
||||
if not name or not phone:
|
||||
return None
|
||||
|
||||
# Проверяем, есть ли уже такой получатель в БД
|
||||
# Если у заказа уже есть получатель - обновляем его вместо создания нового
|
||||
# Загружаем заказ из БД, чтобы получить актуального получателя
|
||||
if order.pk:
|
||||
try:
|
||||
# Order уже импортирован в начале файла
|
||||
db_order = Order.objects.select_related('recipient').get(pk=order.pk)
|
||||
if db_order.recipient:
|
||||
# Обновляем существующего получателя
|
||||
db_order.recipient.name = name
|
||||
db_order.recipient.phone = phone
|
||||
# Сохранять будем в views.py, здесь просто возвращаем объект
|
||||
return db_order.recipient
|
||||
except Order.DoesNotExist:
|
||||
pass
|
||||
|
||||
# Проверяем, есть ли уже такой получатель в БД (по имени и телефону)
|
||||
existing_recipient = Recipient.objects.filter(
|
||||
name=name,
|
||||
phone=phone
|
||||
|
||||
Reference in New Issue
Block a user