From 5300b83565d32e15badd6b7be2ba1d6350ca0aef Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Mon, 1 Dec 2025 10:10:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=BD=D0=BE=D0=BC=D0=B5=D1=80=D1=83=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BA=D0=B0=D0=B7=D0=B0=20=D0=BD=D0=B0=20=D0=BE=D1=82=D0=BB?= =?UTF-8?q?=D0=B0=D0=B4=D0=BE=D1=87=D0=BD=D0=BE=D0=B9=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=86=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проблема: - Фильтр по заказу не работал - order_number в форме передается как строка (ORD-103 или 103) - В модели Order поле order_number имеет тип PositiveIntegerField - Не было преобразования строки в число Исправление: - Добавлен парсинг номера заказа: * Если формат 'ORD-103' -> извлекается число 103 * Если просто '103' -> преобразуется в число 103 - Добавлена обработка ошибок (try-except) - Добавлена фильтрация таблицы заказов (показывать только выбранный) Теперь фильтр работает с любым форматом ввода: - ORD-103 ✓ - ord-103 ✓ - 103 ✓ --- myproject/inventory/views/debug_views.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/myproject/inventory/views/debug_views.py b/myproject/inventory/views/debug_views.py index 5182fc4..ec17c2e 100644 --- a/myproject/inventory/views/debug_views.py +++ b/myproject/inventory/views/debug_views.py @@ -53,7 +53,19 @@ def debug_inventory_page(request): product = None if order_number: - order = Order.objects.filter(order_number=order_number).first() + # Парсим номер заказа: "ORD-103" -> 103 или "103" -> 103 + try: + # Если формат "ORD-XXX", извлекаем число + if order_number.upper().startswith('ORD-'): + order_num = int(order_number.upper().replace('ORD-', '')) + else: + # Просто число + order_num = int(order_number) + + order = Order.objects.filter(order_number=order_num).first() + except (ValueError, AttributeError): + order = None + if order: reservations = reservations.filter(order_item__order=order) sales = sales.filter(order=order) @@ -62,6 +74,8 @@ def debug_inventory_page(request): stock_batches = stock_batches.filter(product_id__in=product_ids) stocks = stocks.filter(product_id__in=product_ids) allocations = allocations.filter(sale__order=order) + # Фильтруем только этот заказ в таблице заказов + orders = orders.filter(id=order.id) else: order = None