В моем проекте у меня есть страница order detail
. Эта страница имеет несколько форм (возврат заказа, доставка заказа и т. Д.)Как перенаправить в Django с ошибками формы?
Каждая из этих форм обрабатывается с использованием разных видов.
Например, для возврата формы заказа есть действие, которое вызывает order_return
вид, который затем, если ReturnOrderForm
действителен, перенаправляет обратно на order_detail
.
Проблема в том, что есть ошибки в ReturnOrderForm
. Я хотел бы вернуться к order_detail
и показать ошибки.
На данный момент, я просто вынести order_detail
внутри order_return
зрения в случае ошибки, которая работает хорошо, но URL-адрес не меняется на order_detail
URL. Я бы использовал HttpResponseRedirect
, но я понятия не имею, как обрабатывать ошибки.
Есть ли у вас идеи?
def order_return(request):
return_order_form = ReturnOrderForm(request.POST or None)
order_id = request.POST.get('order_id')
order = Job.objects.get(id=order_id)
if request.method == 'POST':
if return_order_form.is_valid():
...
order.delivery.return_delivery(notes=customer_notes)
return HttpResponseRedirect(reverse("order_detail", args=(order_id,)))
return render(request, "ordersapp/order_detail/order-detail.html",
context={'return_order_form': return_order_form,
...})
Также обратите внимание: если заявление проверки запроса метод не требуется в вашем коде, поскольку 'is_valid' никогда не будет успешным без действительных данных сообщения – Sayse