2016-07-22 12 views
0

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

+1

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' –

+0

Ja, ich habe versucht mit der @login_required und das war auch nicht funktioniert, bekam immer 'AssignToMe' hat kein Objekt 'user' –

Antwort

0

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')

1

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.

+0

Das tat es. Vielen Dank! –

+0

Gern geschehen :) Könnten Sie das als Antwort akzeptieren? –