Ok, habe eine klassenbasierte Ansicht, die einen query_set
in meine AssignedToMe
Klasse übergibt. Der Zweck dieser klassenbasierten Ansicht besteht darin, festzustellen, ob ein Benutzer angemeldet ist. Ist dies der Fall, können die Benutzer zu einer Seite wechseln und alle Datensätze anzeigen, die ihrer ID zugeordnet sind. Momentan funktioniert es wie ich es möchte, aber nur wenn ein Benutzer angemeldet ist. Wenn ein Benutzer nicht eingeloggt ist, erhalte ich den folgenden Fehler 'AnonymousUser' object is not iterable
.
Ich möchte, dass der Benutzer auf die Anmeldeseite umgeleitet wird, wenn kein Benutzer angemeldet ist. Vielen Dank im Voraus. Bitte schauen Sie auf den ScreenshotKlassenbasierte Ansicht, um Benutzerauthentifizierung in Django zu erhalten
Antwort
Ich weiß nicht, was ist der Kontext Ihrer ClassBasedView ... aber Sie LoginRequiredMixin können die Anmeldung benötigen, bevor Sie Ihre Klasse aufrufen:
class ServerDeleteView(LoginRequiredMixin, DeleteView): model = Server success_url = reverse_lazy('ui:dashboard')
Sie können ein Login erstellen benötigtes Mixin zur Verwendung in Ihren ClassBasedViews wie folgt:
Dann verwenden Sie es wie @M. Gara schlägt vor (es sollte das erste sein). Auch stellen Sie sicher, dass die LOGIN_URL
in Ihrem settings.py
Referenz definiert haben: decorating the class
Alternativ können Sie auf decorate the url wählen.
Das tat es. Vielen Dank! –
Gern geschehen :) Könnten Sie das als Antwort akzeptieren? –
Verwenden Sie [@login_required] (https://docs.djangoproject.com/de/1.9/topics/auth/default/#django.contrib.auth.decorators.login_required) Dekorateur? Wenn ja, haben Sie die 'LOGIN_URL' definiert in Ihrer' settings.py' –
Ja, ich habe versucht mit der @login_required und das war auch nicht funktioniert, bekam immer 'AssignToMe' hat kein Objekt 'user' –