diff --git a/myproject/orders/templates/orders/order_detail.html b/myproject/orders/templates/orders/order_detail.html index 232986f..3283771 100644 --- a/myproject/orders/templates/orders/order_detail.html +++ b/myproject/orders/templates/orders/order_detail.html @@ -26,7 +26,7 @@ Редактировать - {% if order.status and order.status.code == 'draft' and order.amount_paid == 0 %} + {% if order.status and order.status.code == 'draft' and order.amount_paid == 0 and not order.wallet_transactions.exists %} Удалить diff --git a/myproject/orders/views.py b/myproject/orders/views.py index 26cfc08..d502432 100644 --- a/myproject/orders/views.py +++ b/myproject/orders/views.py @@ -434,6 +434,15 @@ def order_delete(request, order_number): ) return redirect('orders:order-detail', order_number=order.order_number) + # Проверка: нельзя удалять заказы с транзакциями кошелька + if order.wallet_transactions.exists(): + messages.error( + request, + 'Удаление невозможно. Заказ имеет транзакции кошелька клиента. ' + 'Сначала удалите связанные транзакции.' + ) + return redirect('orders:order-detail', order_number=order.order_number) + if request.method == 'POST': order_number_saved = order.order_number order.delete()