在我的项目中,我有一个order detail
页面。此页面有多种形式(退货订单,交货订单等)
使用不同的视图处理每个表单。
例如,返回订单表单的操作会调用order_return
视图,如果ReturnOrderForm
有效,则会重定向回order_detail
。
问题在于ReturnOrderForm
中存在错误。我想回到order_detail
并显示错误。
目前,我只是在order_detail
视图中呈现order_return
,以防出现错误,效果不错但网址未更改为order_detail
网址。我会使用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,
...})
答案 0 :(得分:1)
您可以创建一个可以返回详细响应的共享方法
def get_order_detail_response(request, contxt=None, **kwargs)
context = contxt or {}
context['return_order_form'] = kwargs.get('return_form', ReturnOrderForm())
return render(request, 'template', context)
然后,每个视图都可以返回此
return get_order_detail_response(request, return_form=return_order_form)