fait la `context_instance = RequestContext (demande)` utilisation des cookies dans django
-
08-10-2019 - |
Question
quand je change la vue page d'accueil:
def home(request):
return render_to_response('homepage.html')
à
def home(request):
return render_to_response('homepage.html',context_instance=RequestContext(request))
user
qui se connectent mon site sera toujours se connecter même lorsque je ferme le navigateur web (Firefox)
pourquoi context_instance=RequestContext(request)
peut le faire? Est-il utiliser les cookies?
combien de temps il maintiendra cet état.
Merci
homepage.html est:
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
<p>Welcome, new user. Please <a href="/account/login_view">login</a></p>
{% endif %}
La solution
Ajout du RequestContext ne change pas connecté de l'utilisateur l'état du tout. Et votre question au sujet des cookies fait du tout aucun sens. Ce que le fait est RequestContext rendre certaines variables accessibles dans le contexte du modèle -. Parmi eux, supposant que vous avez le processeur de contexte auth
activé, est une variable user
Sans RequestContext, l'utilisateur est toujours connecté, mais vous ne passez pas la variable user
au contexte, afin que votre déclaration if
est évaluée à false. Rien à voir avec l'état réel de l'utilisateur du tout.
Autres conseils
Si vous ajoutez le contexte de context_instance=RequestContext(request)
des processeurs de contexte que vous avez défini dans votre settings.py
seront ajoutés au modèle, dans votre cas cela inclut l'objet utilisateur actuel user
.
Si vous le retirez, la variable n'existe pas, mais à l'intérieur du modèle, cela ne soulève pas une exception, mais le code HTML pour le non-utilisateur connecté est rendu!
Les informations utilisateur sont stockées dans une session de , qui utilise les cookies.