2016-09-24 4 views
0

Ich versuche, einen Cookie in einer Ansicht mit dem folgenden Code festzulegen.Setzen eines Cookies in einer Django-Ansicht

def index(request): 
    resp = HttpResponse("Setting a cookie") 
    resp.set_cookie('name', 'value') 
    if 'name' in request.COOKIES: 
     print "SET" 
    else: 
     print "NOT SET" 
    return render(request, 'myapp/base.html', {}) 

Wenn die Ansicht der Konsole druckt NOT SET, geladen wird, die das Cookie bedeutet, wurde nicht festgelegt. In jedem Tutorial/Dokument scheint dies die Methode zu sein. Aber es funktioniert einfach nicht für mich:/

Irgendwelche Hilfe? Ich verwende Django 1.9.8, und ich verwende die App auf meinem lokalen Server oder 127.0.0.1:8000.

Antwort

3

Sie erstellen eine Antwort und setzen einen Cookie darauf, aber dann tun Sie nichts mit dieser Antwort. Die Verknüpfung render erstellt eine eigene Antwort, die tatsächlich an den Browser gesendet wird.

Sie sollten den Rückgabewert machen erfassen, und setzen Sie den Cookie auf, dass:

if 'name' in request.COOKIES: 
    print "SET" 
else: 
    print "NOT SET" 
resp = render(request, 'myapp/base.html', {}) 
resp.set_cookie('name', 'value') 
return resp 
+0

Das macht Sinn und funktioniert. Vielen Dank, Mann. –

Verwandte Themen