Добавлена конвертация даты и времени при автосохранении черновика
Добавлен парсинг строковых значений в объекты 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 decimal import Decimal
|
||||
import decimal
|
||||
from datetime import datetime, date, time
|
||||
|
||||
from ..models import Order, OrderItem
|
||||
from products.models import Product, ProductKit
|
||||
@@ -127,6 +128,30 @@ class DraftOrderService:
|
||||
except (ValueError, TypeError, decimal.InvalidOperation):
|
||||
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)
|
||||
|
||||
order.modified_by = user
|
||||
|
||||
Reference in New Issue
Block a user