我有一个装饰我用于我的观点@valid_session
from django.http import Http404
def valid_session(the_func):
"""
function to check if the user has a valid session
"""
def _decorated(*args, **kwargs):
if ## check if username is in the request.session:
raise Http404('not logged in.')
else:
return the_func(*args, **kwargs)
return _decorated
我想在我的decoartor中访问我的会话。当用户登录时,我将用户名放在我的会话中。
答案 0 :(得分:4)
以下内容会解决您的问题:
def valid_session(func):
def decorated(request, *args, **kwargs):
print request.session
return func(request, *args, **kwargs)
return decorated
答案 1 :(得分:1)
view函数将请求作为第一个参数,因此装饰器也会将其作为第一个参数接收。你可以通过request.session拉出会话。
答案 2 :(得分:0)
您可以将请求(或仅会话)作为parameter to the decorator传递。我只是不知道如何通过它来传递它。我昨晚试图找出类似的东西。