it-swarm.com.de

Wie überprüfe ich, ob dieser Benutzer anonym ist oder tatsächlich ein Benutzer in meinem System ist?

def index(request):
    the_user = request.user

Woher weiß ich in Django, ob es ein echter Benutzer ist oder nicht? Ich habe es versucht:

if the_user: aber "AnonymousUser" ist auch dann vorhanden, wenn sich niemand anmeldet. Daher gibt es immer "true" zurück, und dies funktioniert nicht.

48
TIMEX

Sie können prüfen, ob request.user.is_anonymousTrue zurückgibt.

85
Daniel DiPaolo

Eine Alternative zu 

if user.is_anonymous():
    # user is anon user

testet, um zu sehen, wie die ID des Benutzerobjekts lautet:

if user.id == None:
    # user is anon user
else:
    # user is a real user

siehe https://docs.djangoproject.com/de/dev/ref/contrib/auth/#anonymous-users

11
leifos

Ich weiß, dass ich hier ein bisschen Grave grabe, aber eine Google-Suche brachte mich zu dieser Seite.

Wenn Ihre Sicht def erfordert, dass der Benutzer angemeldet ist, können Sie den @login_required-Dekorator implementieren:

from Django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
    …
3
Karl M.W.

Ich hatte ein ähnliches Problem, mit der Ausnahme, dass dies auf einer Seite war, an die login_redirect_url gesendet wurde. Ich musste die Vorlage einfügen:

{% if user.is_authenticated %}
    Welcome Back, {{ username }}
{% endif %}
0
Harlin