2017-10-15 5 views
0
class HomePage(TemplateView): 

    template_name = 'obs/homepage.html' 

Je souhaite que cette vue soit accessible uniquement aux utilisateurs connectés. Comment puis je faire ça? J'ai vu la documentation de django mais c'était pour les fonctions.Comment utiliser la méthode django login_required

Répondre

0

J'ai tendance à configurer un mixin pour l'utiliser, quelque chose comme ça;

from django.contrib.auth.decorators import login_required 
from django.utils.decorators import method_decorator 
from django.views.generic import TemplateView 

class LoginRequiredMixin(object): 
    @method_decorator(login_required) 
    def dispatch(self, *args, **kwargs): 
     return super(LoginRequiredMixin, self).dispatch(*args, **kwargs) 

class HomePage(LoginRequiredMixin,TemplateView): 
    template_name = 'obs/homepage.html' 
+0

merci beaucoup. ça a marché mais j'ai besoin d'une autre aide maintenant. comment puis-je rediriger une personne vers "obs/login /" cette URL s'il n'est pas connecté mais veut accéder à "obs/homepage" – jef

+0

@jef Jetez un coup d'oeil aux paramètres, il y a quelques valeurs par défaut qui gèrent cela; https://docs.djangoproject.com/fr/dev/ref/settings/#login-url –