用户_passes_test中的Django-会话变量

时间:2016-12-05 03:02:05

标签: django django-sessions

我想运行方法装饰器@user_passes_test并在该测试中使用会话变量:

def has_correct_search(user):
    source = request.session['source']
    if ApiSearch.objects.filter(user=user, source=source).exists():
        return True
    else:
        return False

问题是我不知道如何传递请求对象:

@method_decorator(user_passes_test(has_correct_search, redirect_field_name=search_url_name))
    def dispatch(self, request, *args, **kwargs):
    (...)

在这种情况下,获取会话变量是否有任何技巧?我有什么选择?