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 %}
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top