Django:从函数重定向不起作用

用户9252255

谁能告诉我,为什么我的重定向不起作用?我可以在终端中看到“应该重定向 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)
西蒙·P。

在你的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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章