Исправлен фильтр по номеру заказа на отладочной странице
Проблема: - Фильтр по заказу не работал - 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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user