Исправлен фильтр по номеру заказа на отладочной странице

Проблема:
- Фильтр по заказу не работал
- order_number в форме передается как строка (ORD-103 или 103)
- В модели Order поле order_number имеет тип PositiveIntegerField
- Не было преобразования строки в число

Исправление:
- Добавлен парсинг номера заказа:
  * Если формат 'ORD-103' -> извлекается число 103
  * Если просто '103' -> преобразуется в число 103
- Добавлена обработка ошибок (try-except)
- Добавлена фильтрация таблицы заказов (показывать только выбранный)

Теперь фильтр работает с любым форматом ввода:
- ORD-103 ✓
- ord-103 ✓
- 103 ✓
This commit is contained in:
2025-12-01 10:10:49 +03:00
parent d712da1816
commit 5300b83565

View File

@@ -53,7 +53,19 @@ def debug_inventory_page(request):
product = None product = None
if order_number: 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: if order:
reservations = reservations.filter(order_item__order=order) reservations = reservations.filter(order_item__order=order)
sales = sales.filter(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) stock_batches = stock_batches.filter(product_id__in=product_ids)
stocks = stocks.filter(product_id__in=product_ids) stocks = stocks.filter(product_id__in=product_ids)
allocations = allocations.filter(sale__order=order) allocations = allocations.filter(sale__order=order)
# Фильтруем только этот заказ в таблице заказов
orders = orders.filter(id=order.id)
else: else:
order = None order = None