Django 1.9.6.Anonyme Benutzer umleiten, um sich einzuloggen (zeige ihnen nichts)
Ich möchte die gesamte Website von anonymen Benutzern deaktivieren. Anonyme Benutzer werden immer zur Anmeldeseite weitergeleitet.
Ich habe eine allgemeine Ansicht erstellt. Das Problem ist, dass Subklassen von GeneralView kann nicht nur eine Vorlage machen, aber einige Berechnungen oder einfach nur seine verschiedener Arten ausführen: Detail, Listview usw.
class GeneralView(View):
def get(self, request, template):
if not request.user.is_authenticated() and request.user.is_active:
return redirect("auth_login")
else:
return render(request, template)
Wenn ich zu erben versuche, wird der Code plump:
class HomePageView(GeneralView):
def get(self, request, template):
super().get(self, request)
Nun, was kann ich hier tun? Ich bekomme die Fehlermeldung, dass meine Methode get HttpResponse nicht zurückgibt.
Ich kann Methode der Oberklasse umschreiben, um Statuscode zurückzugeben. Dann überprüfen Sie es in der Unterklasse. Aber das scheint Müll zu sein.
Mit anderen Worten bin ich in den Wolken der Erbschaft verloren. Könntest du mir hier einen Kick geben, wie man anonyme Benutzer immer zur Login-Seite umleitet, während eingeloggte User alles sehen können.
Vielen Dank im Voraus.
Mögliches Duplikat [Beste Art und Weise Djangos login \ _required der Standard zu machen] (http://stackoverflow.com/questions/2164069/best-way-to-make-djangos-login-required-the- Standard) – Sayse