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

    template_name = 'obs/homepage.html' 

Ich möchte diese Ansicht nur angemeldeten Benutzern zugänglich machen. Wie kann ich das machen? Ich habe Django-Dokumentation gesehen, aber es war für Funktionen.So verwenden Sie die Methode django login_required

Antwort

0

Ich neige dazu, ein Mixin zu verwenden, um in Sicht, etwas in der Art zu verwenden;

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

vielen Dank. Es funktionierte, aber ich brauche jetzt eine andere Hilfe. Wie kann ich eine Person auf "obs/login /" umleiten, wenn sie nicht eingeloggt ist, aber auf "obs/homepage" zugreifen will – jef

+0

@jef Schau dir die Einstellungen an, es gibt einige Standardeinstellungen, die das handhaben; https://docs.djangoproject.com/de/dev/ref/settings/#login-url –

Verwandte Themen