Добавлена конвертация даты и времени при автосохранении черновика
Добавлен парсинг строковых значений в объекты date и time для полей delivery_date, delivery_time_start и delivery_time_end, чтобы форма корректно отображала сохраненные значения. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,7 @@ from django.utils import timezone
|
|||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
import decimal
|
import decimal
|
||||||
|
from datetime import datetime, date, time
|
||||||
|
|
||||||
from ..models import Order, OrderItem
|
from ..models import Order, OrderItem
|
||||||
from products.models import Product, ProductKit
|
from products.models import Product, ProductKit
|
||||||
@@ -127,6 +128,30 @@ class DraftOrderService:
|
|||||||
except (ValueError, TypeError, decimal.InvalidOperation):
|
except (ValueError, TypeError, decimal.InvalidOperation):
|
||||||
value = Decimal('0')
|
value = Decimal('0')
|
||||||
|
|
||||||
|
# Конвертируем дату
|
||||||
|
elif field == 'delivery_date':
|
||||||
|
if value == '' or value is None:
|
||||||
|
value = None
|
||||||
|
elif isinstance(value, str):
|
||||||
|
try:
|
||||||
|
value = datetime.strptime(value, '%Y-%m-%d').date()
|
||||||
|
except ValueError:
|
||||||
|
value = None
|
||||||
|
|
||||||
|
# Конвертируем время
|
||||||
|
elif field in ['delivery_time_start', 'delivery_time_end']:
|
||||||
|
if value == '' or value is None:
|
||||||
|
value = None
|
||||||
|
elif isinstance(value, str):
|
||||||
|
try:
|
||||||
|
# Формат времени может быть HH:MM или HH:MM:SS
|
||||||
|
if len(value.split(':')) == 2:
|
||||||
|
value = datetime.strptime(value, '%H:%M').time()
|
||||||
|
else:
|
||||||
|
value = datetime.strptime(value, '%H:%M:%S').time()
|
||||||
|
except ValueError:
|
||||||
|
value = None
|
||||||
|
|
||||||
setattr(order, field, value)
|
setattr(order, field, value)
|
||||||
|
|
||||||
order.modified_by = user
|
order.modified_by = user
|
||||||
|
|||||||
Reference in New Issue
Block a user