def index(request):
the_user = request.user
Woher weiß ich in Django, ob es sich um einen echten Benutzer handelt oder nicht? Ich habe es versucht:
if the_user:
"AnonymousUser" ist jedoch auch dann vorhanden, wenn sich niemand anmeldet. Es wird also immer true zurückgegeben, und dies funktioniert nicht.
python
django
http
authentication
TIMEX
quelle
quelle
views.py
request.user.is_anonymous()
{{user.is_anonymous}}
is_authenticated()
: siehe docs.djangoproject.com/de/1.9/topics/auth/default/…is_authenticated()
. Siehe auch thegarywilson.com/blog/2006/is_authenticated-vs-is_anonymousrequest.user.is_authenticated
dieses Attribut in Django 1.10+ genauso wieis_anonymous
jetzt - siehe docs.djangoproject.com/de/dev/ref/contrib/auth/… . Beachten Sie, dass, wenn Sie auch Django Guardian verwenden, diese Attribute nicht das tun, was Sie denken - siehe django-guardian.readthedocs.io/en/stable/configuration.htmlEine Alternative zu
if user.is_anonymous(): # user is anon user
Testen Sie, um festzustellen, 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
quelle
Ich weiß, dass ich hier ein bisschen grabe, aber eine Google-Suche hat mich auf diese Seite gebracht.
Wenn Ihre Ansicht def erfordert, dass der Benutzer angemeldet ist, können Sie den Dekorator @login_required implementieren:
from django.contrib.auth.decorators import login_required @login_required def my_view(request): …
quelle
Ich hatte ein ähnliches Problem, außer dass es sich auf einer Seite befand, an die die login_redirect_url gesendet wurde. Ich musste die Vorlage einfügen:
{% if user.is_authenticated %} Welcome Back, {{ username }} {% endif %}
quelle