Desidero impostare un cookie all'interno di una vista e quindi fare in modo che la visualizzazione renda un modello. A quanto mi risulta, questo è il modo di impostare un cookie:Come impostare i cookie in Django e quindi renderizzare il modello?
def index(request):
response = HttpResponse('blah')
response.set_cookie('id', 1)
return response
Tuttavia, voglio impostare un cookie e quindi rendere un template, qualcosa di simile:
def index(request, template):
response_obj = HttpResponse('blah')
response_obj.set_cookie('id', 1)
return render_to_response(template, response_obj) # <= Doesn't work
Il modello conterrà collegamenti che, se cliccati, eseguiranno altre viste che controllano il cookie che sto impostando. Qual è il modo corretto di fare ciò che ho mostrato nel secondo esempio sopra? Capisco che potrei creare una stringa che contenga tutto l'HTML per il mio modello e passare quella stringa come argomento a HttpResponse ma che sembra davvero brutta. Non c'è un modo migliore per farlo? Grazie.
Prima istanzia un HttpResponse ma non fai nulla con esso. 'render' restituisce una risposta, che tu assegni nella stessa variabile su cui poi imposti il cookie e che alla fine ritorni. La tua risposta sarebbe equivalente alla riga 'response = HttpResponse()' rimossa. –
Forse ho frainteso qualcosa, ma non era la domanda "come impostare un cookie * prima di * renderizzare il modello"? – vmonteco