Dans d'autres langues, il est très facile de mettre à jour par exemple la date d'expiration dans un cookie, mais je ne peux pas comprendre ma vie de savoir comment le faire à Django! P>
La raison de la mise à jour de la date d'expiration au lieu de définir un nouveau cookie est donc que je n'ai pas à faire appel à une base de données sur chaque page. P>
EDIT:
Merci pour toutes les réponses, mais cela semble être une certaine confusion sur ce que j'essaie d'accomplir, alors je vais essayer d'être plus précis:
Cadrage ou obtenir un cookie n'est pas la question forte>. Ce que j'aimerais savoir est
3 Réponses :
Accéder à des cookies: Définition des cookies: Plus d'informations ici: Django Book: Sessions ... P> demande.cookies [..] code> p>
réponse.set_cookie () code> p>
Est-il possible de modifier un cookie accessible A la request.Cookies ['mycookie']. Expire = etc?
Oui, regardez juscramer.com/2007/ 12/20 / ... Vous pouvez modifier pour changer l'heure d'expiration
Trois manières: 1)
response = render_to_response(template_name, {'data':'data'}) response.set_cookie("cookie_name","test_value") return response
Eh bien, je veux explorer une solution qui n'implique pas encore la mise en place du cookie. Pourrait bien sûr aller la voie JS, mais cela ne se sent pas très ... Pythonic :)
À un moment donné, pour un nouvel utilisateur, vous devez définir le cookie. Le temps d'expiration du cookie est généralement un cas par utilisateur. À Django, vous pouvez définir l'âge de la cookie avec le code suivant:
response = redirect('somewhere') # replace redirect with HttpResponse or render response.cookies['cookie_name']['expires'] = datetime.today() + timedelta(days=1)
J'ai déjà mis le cookie, la question est de savoir comment mettre à jour un cookie déjà défini?
J'ai essayé votre réponse éditée, mais il semble que vous ne puissiez pas faire cela avec les cookies standard (Get KeyRror 'Cookie_name', même si vous avez déjà défini ce cookie). Après avoir examiné cela, il semble que cela fonctionne si vous utilisez django.http.simplecookie (). Je vais enquêter plus loin .. Merci pour la tête!
Je n'ai réellement trouvé aucun moyen de le faire. Je pensais qu'il y aurait un moyen de faire le suivi de 1. Obtenir le cookie 2. Changer la date d'expiration, simple comme ça. Pseudo code qui ne fonctionne pas: c = demande.cookies ['mycookie'] c.expire = datetime.datetime.now () + datetime.tumedelta (jours = 30)