Je suis en train de convertir certaines de mes vues django à partir de vues fonctionnelles en vues basées sur les classes et j'ai rencontré un petit problème. Mon OO est un peu faible et je pense que le problème est que j'ai perdu la trace de l'endroit où vont les choses.Vue de classe django avec décorateur et sessions
J'ai un décorateur de connexion personnalisée que j'ai besoin sur les points de vue, donc j'ai ...
D'abord, j'ai la classe View de cet exemple http://www.djangosnippets.org/snippets/760/
Alors ma classe de vue ressemble à ceci .. .
class TopSecretPage(View):
@custom_login
def __call__(self, request, **kwargs):
#bla bla view stuff...
pass
Le problème est que mon décorateur ne peut pas accéder request.session pour une raison quelconque ...
mon décorateur ressemble à ceci ...
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
Je pense qu'il est quelque chose de simple que je me manque donc merci pour votre patience tout le monde!
MISE À JOUR: Ok, donc voici l'erreur que je reçois ...
"ViewDoesNotExist. Essayé TopSecretPage dans projectname.application.views module erreur était: objet type 'TopSecretPage' n'a pas d'attribut 'session'"
J'ai simplifié le décorateur, ainsi ressembler à ceci ....
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
J'ai mis à jour ma réponse. –