Я пытаюсь преобразовать некоторые из моих представлений django из представлений на основе функций в представления на основе классов, и я столкнулся с небольшой проблемой.
Мой ОО немного слаб, и я думаю, что проблема в том, что я потерял счет того, что происходит.
У меня есть собственный декоратор входа в систему, который мне нужен для просмотра, поэтому у меня есть ...
Сначала у меня есть класс View из этого примера.
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:
Итак, вот ошибка, которую я получаю ...
"ViewDoesNotExist: пробовал TopSecretPage в модуле имя_проекта.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