Я пытаюсь преобразовать некоторые из своих представлений django из представлений, основанных на функции, в представления, основанные на классе, и я столкнулся с небольшой проблемой.django class view with decorator and sessions
Мое ОО слабое, и я думаю, проблема в том, что я потерял информацию о том, что происходит.
У меня есть пользовательский логин декоратор, что мне нужно от взглядов, так что я есть ...
Во-первых у меня есть вид класса из этого примера http://www.djangosnippets.org/snippets/760/
Тогда мой взгляд класс выглядит следующим образом .. .
class TopSecretPage(View):
@custom_login
def __call__(self, request, **kwargs):
#bla bla view stuff...
pass
проблема заключается в том, что мой декоратора не может получить доступ к request.session по какой-то причине ...
Мой декоратор выглядит так ...
def myuser_login_required(f):
def wrap(request, *args, **kwargs):
# this check the session if userid key exist,
# if not it will redirect to login page
if 'field' not in request.session.keys():
return wrap
Я думаю, что это что-то простое, что мне не хватает, спасибо за ваше терпение всем!
UPDATE: Ok так вот ошибка, которую я получаю ...
"ViewDoesNotExist:. Пробовал TopSecretPage в модуле projectname.application.views Ошибка: тип объекта 'TopSecretPage' не имеет атрибута 'сессии'"
я упростил декоратора, а также посмотреть, как это ....
def myuser_login_required(request, *args, **kwargs):
# this check the session if userid key exist,
# if not it will redirect to login page
if 'username' not in request.session.keys():
return HttpResponseRedirect(reverse("login-page"))
return True
Я обновил свой ответ. –