def index(request):
the_user = request.user
Dans Django, comment savoir si c'est un vrai utilisateur ou non? J'ai essayé:
if the_user:
mais "AnonymousUser" est là même si personne ne se connecte. Donc, il retourne toujours true et cela ne fonctionne pas.
Vous pouvez vérifier si request.user.is_anonymous
renvoie True
.
Une alternative à
if user.is_anonymous():
# user is anon user
est en testant pour voir quel est l'identifiant de l'objet utilisateur:
if user.id == None:
# user is anon user
else:
# user is a real user
voir https://docs.djangoproject.com/en/dev/ref/contrib/auth/#anonymous-users
Je sais que je creuse un peu ici, mais une recherche sur Google m'a amené à cette page.
Si votre vue nécessite que l'utilisateur soit connecté, vous pouvez implémenter le décorateur @login_required:
from Django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
…
J'ai eu un problème similaire, sauf que c'était sur une page à laquelle le login_redirect_url a été envoyé. Je devais mettre dans le modèle:
{% if user.is_authenticated %}
Welcome Back, {{ username }}
{% endif %}