user_passes_test 中的 Django- 会话变量

Django- Session Variables in user_passes_test

我想 运行 方法装饰器 @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):
    (...)

在这种情况下,有什么技巧可以获取会话变量吗?我有哪些选择?

我想我找到了答案....

https://docs.djangoproject.com/en/1.9/topics/auth/default/#django.contrib.auth.mixins.UserPassesTestMixin