谁能告诉我,为什么我的重定向不起作用?我可以在终端中看到“应该重定向 2”,但不知何故重定向从未发生。重定向导入就在那里。
helpers.py
def get_reserved_items_or_redirect(request):
session_order_reference = request.session.get('order_reference')
if request.session.get('order_reference'):
reserved_items = ReservedItem.objects.filter(
order_reference=session_order_reference
)
print("session_order_reference: ", session_order_reference)
if not reserved_items:
print( "SHOULD REDIRECT 1")
return redirect('website:index')
else:
print( "SHOULD REDIRECT 2")
return redirect('website:index')
视图.py
class CheckoutView(TemplateView):
# To check make an order
template_name = "checkout/checkout_new.html"
# make it a decorator
def dispatch(self, request, *args, **kwargs):
get_reserved_items_or_redirect(request)
return super().dispatch(request, *args, **kwargs)
在你的CheckoutView
,你只有调用get_reserved_items_or_redirect(request)
。要使其工作,只需重构您的 dispatch 方法以返回此方法的返回值。
def dispatch(self, request, *args, **kwargs):
if some_value: # Check if you need to perform redirect
return get_reserved_items_or_redirect(request)
else: # If redirect is not required
return super().dispatch(request, *args, **kwargs)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句