Django:自定义装饰器:会话或重定向

时间:2018-06-20 18:44:06

标签: django

我具有以下函数视图,并且我想添加一个参数,如果request.session.get('order_reference')为空,该参数会将用户重定向到另一个页面。与@login_required相似的人可以帮助我吗?

   def checkout_page(request):
        session_order_reference = request.session.get('order_reference')

1 个答案:

答案 0 :(得分:1)

尝试以下操作:

def custom_decorator(function):
    def _function(request,*args, **kwargs):
        if request.session.get('order_reference') is None:
        # if empty means, empty string
        # if request.session.get('order_reference') is not None\
        # and not request.session.get('order_reference'):
            return HttpResponseRedirect('/your/url/')
        return function(request, *args, **kwargs)
    return _function

设置自定义装饰器后,用它装饰视图。

@custom_decorator
def checkout_page(request):
    return render(request,'template_name.html')
相关问题