51 votes

Comment définir ou obtenir une valeur de cookie dans Django

C'est mon code :

 from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django import http
from django.http import HttpResponse 

def main(request, template_name='index.html'):
    HttpResponse.set_cookie('logged_in_status', 'zjm1126')
    context ={
              'a':a,
              'cookie':HttpResponse.get_cookie('logged_in_status'),
    }

    return render_to_response(template_name, context)
    #return http.HttpResponsePermanentRedirect(template_name)

Il lève cette exception :

 unbound method set_cookie() must be called with HttpResponse instance as first argument (got str instance instead)

Que puis-je faire?

148voto

Yuji 'Tomita' Tomita Points 46106

Vous ne pouvez pas simplement commencer à appeler des méthodes sur la HttpResponse , vous devez l'instancier, par exemple response = HttpResponse("Hello World") , appeler la méthode cookie, puis la renvoyer à partir de votre vue.

 response = render_to_response(template_name, context)

response.set_cookie('logged_in_status', 'never_use_this_ever') 
return response
# remember my other answer: 
# it's a terrrible idea to set logged in status on a cookie.

Pour obtenir le cookie :

 request.COOKIES.get('logged_in_status') 
# remember, this is a terrible idea.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X