From f7305bae113ae851a3fc937124a69af2ab9e7a6a Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Sun, 9 Nov 2025 12:21:58 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5=D1=80=D1=82=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=B4=D0=B0=D1=82=D1=8B=20=D0=B8=20=D0=B2?= =?UTF-8?q?=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=BF=D1=80=D0=B8=20?= =?UTF-8?q?=D0=B0=D0=B2=D1=82=D0=BE=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B8=20=D1=87=D0=B5=D1=80=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлен парсинг строковых значений в объекты date и time для полей delivery_date, delivery_time_start и delivery_time_end, чтобы форма корректно отображала сохраненные значения. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- myproject/orders/services/draft_service.py | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/myproject/orders/services/draft_service.py b/myproject/orders/services/draft_service.py index e7ebd69..79e9fd7 100644 --- a/myproject/orders/services/draft_service.py +++ b/myproject/orders/services/draft_service.py @@ -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