django-registration: Wie überprüfe ich, ob der Benutzer angemeldet ist, bevor eine Seite angezeigt wird?

8

Ich habe diese Seite verfolgt, um eine Django-Registrierung einzurichten Seite? ˅. Es ist ziemlich toll, und Registrierung und Authentifizierung sind gut verpackt.

Aber es zeigt mir nicht, wie überprüfe ich, ob ein Benutzer angemeldet ist, wer dieser Benutzer ist, bevor eine Webseite angezeigt wird? und wie leite ich den Benutzer nach dem Einloggen auf eine neue Seite?

Danke!

    
CodeNoob 08.01.2013, 16:39
quelle

3 Antworten

11

In einer Ansicht können Sie if request.user.is_authenticated(): verwenden und die Variable für den aktuellen Benutzer ist request.user

In einer Vorlage können Sie {% if user.is_authenticated %} verwenden und die Variable für den aktuellen Benutzer ist user

Um einen Benutzer nach der Anmeldung umzuleiten, können Sie die Variable LOGIN_REDIRECT_URL in settings.py

einrichten     
msc 08.01.2013, 18:09
quelle
7

In .py-Dokumenten

Sie können dies entweder in jeder Ansicht verwenden

%Vor%

oder dies kurz vor jeder Ansicht

%Vor%

Denken Sie daran, dass dieser importiert werden muss from django.contrib.auth.decorators import login_required
Sie können auch LOGIN_URL = "/loginurl/" in Ihre settings.py schreiben, um nicht angemeldete Benutzer zu einer bestimmten URL anstatt der Standard-URL accounts/login )

umzuleiten

In .html-Dokumenten

%Vor%

Umleiten nach dem Anmelden

Sie können LOGIN_REDIRECT_URL in settings.py

ändern

oder redirect("/indexpage") , nachdem der Benutzer angemeldet wurde.
Dieser letzte muss importiert werden from django.shortcuts import redirect

    
zurfyx 25.07.2013 12:30
quelle
4

Sie können auch einen für die Anmeldung erforderlichen Dekorator vor Ihrer Ansicht verwenden:

%Vor%

Er leitet einen Benutzer auf die Anmeldeseite um, wenn ein nicht angemeldeter Benutzer versucht, auf Ihre Ansicht zuzugreifen

Sie finden mehr auf dieser Seite: Zypern

    
ltbesh 29.01.2013 10:17
quelle