Как обновить cookie в Django - PullRequest
       0

Как обновить cookie в Django

9 голосов
/ 08 апреля 2011

На других языках очень легко обновить, например, дату истечения срока действия в куки, но я не могу на всю жизнь понять, как это сделать в Django!

Причина обновления срока действиявместо установки нового файла cookie используется дата, поэтому мне не нужно выполнять вызов базы данных на каждой странице.

РЕДАКТИРОВАТЬ: Спасибо за все ответы, но, похоже, что я пытаюсь понять, что я пытаюсь сделать.чтобы выполнить, поэтому я постараюсь быть более точным: УСТАНОВКА или ПОЛУЧЕНИЕ куки не вопрос .Я хотел бы знать, как ОБНОВИТЬ уже установленный файл cookie .Извините за недоразумение!

Ответы [ 3 ]

14 голосов
/ 09 апреля 2011

В какой-то момент для нового пользователя вы должны установить cookie. Время истечения срока действия файла cookie обычно зависит от пользователя. В Django вы можете установить возраст файлов cookie с помощью следующего кода:

response = redirect('somewhere') # replace redirect with HttpResponse or render
response.set_cookie('cookie_name', 'cookie_value', max_age=1000)

Срок действия указанного файла cookie истекает через 1000 секунд в браузере пользователя.

Также имеется атрибут expires, в котором вы можете указать срок действия.

Ссылка: https://docs.djangoproject.com/en/2.0/ref/request-response/#django.http.HttpResponse.set_cookie

EDIT

Из исходного кода django попробуйте следующее:

response = redirect('somewhere') # replace redirect with HttpResponse or render
response.cookies['cookie_name']['expires'] = datetime.today() + timedelta(days=1)

Срок действия выше 1 дня с сегодняшнего дня.

3 голосов
/ 08 апреля 2011

Доступ к файлам cookie: request.COOKIES[..]

Настройка файлов cookie: response.set_cookie()

Больше информации здесь: Книга Джанго: Сеансы ...

0 голосов
/ 08 апреля 2011

Три способа: 1)

response = render_to_response(template_name, {'data':'data'})
response.set_cookie("cookie_name","test_value")
return response

2Программное обеспечение: http://justcramer.com/2007/12/20/set-cookies-without-a-response-in-django/

3) JavaScript в шаблоне

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...