получить доступ к сессии django от декоратора - PullRequest
2 голосов
/ 10 апреля 2010

У меня есть декоратор, который я использую для своих просмотров @ 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. Когда пользователь входит в систему, я добавляю имя пользователя в мой сеанс.

Ответы [ 3 ]

4 голосов
/ 10 апреля 2010

Решит ли ваша проблема что-то вроде следующего:

def valid_session(func):
    def decorated(request, *args, **kwargs):
        print request.session
        return func(request, *args, **kwargs)
    return decorated
1 голос
/ 18 марта 2012

Функция view принимает запрос в качестве первого параметра, поэтому декоратор также получит его в качестве первого параметра. Вы можете вытащить сессию из нее только с request.session.

0 голосов
/ 10 апреля 2010

Вы можете передать запрос (или просто сеанс) в качестве параметра декоратору . Я просто не знаю, как это сделать, чтобы передать это. Я пытался выяснить что-то похожее прошлой ночью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...