Chcę ustawić plik cookie wewnątrz widoku, a następnie wyświetlić ten widok jako szablon. Jak rozumiem, jest to sposób, aby ustawić ciasteczko:Jak ustawić plik cookie w Django, a następnie wyświetlić szablon?
def index(request):
response = HttpResponse('blah')
response.set_cookie('id', 1)
return response
Jednakże chcę ustawić plik cookie i następnie renderować szablon, coś takiego:
def index(request, template):
response_obj = HttpResponse('blah')
response_obj.set_cookie('id', 1)
return render_to_response(template, response_obj) # <= Doesn't work
Szablon będzie zawierał linki, które po kliknięciu wykonają inne widoki, które sprawdzają plik cookie, który ustawiam. Jaki jest właściwy sposób robienia tego, co pokazałem w drugim przykładzie powyżej? Rozumiem, że mogę utworzyć ciąg zawierający cały kod HTML dla mojego szablonu i przekazać ten ciąg jako argument do HttpResponse, ale wydaje się to naprawdę brzydkie. Czy nie ma lepszego sposobu na zrobienie tego? Dzięki.
Najpierw wykonaj instancję HttpResponse, ale nic z nią nie rób. 'render' zwraca odpowiedź, którą przypisujesz do tej samej zmiennej, na której ustawiasz plik cookie, a który ostatecznie zwrócisz. Twoja odpowiedź byłaby równoważna z linią 'response = HttpResponse()' removed. –
Mogłem coś źle zinterpretować, ale nie było pytanie "jak ustawić ciasteczko * przed * renderowaniem szablonu"? – vmonteco