Djangoでテンプレートを出力するとき、あわせてcookieの書き込みもしたいケースがあります。よくあるサンプルだと
return render_to_response(‘index.html’)
っていう書き方をしているのですが、「コレ、cookieの書き出しどうすんのよ」って悩んでしまいました。その結果、
def index(request):_max_age = 45*24*60*60_expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=_max_age), “%a, %d-%b-%Y %H:%M:%S GMT”)_response = render_to_response(‘index.html’)_response.set_cookie(‘hoge’, value=’hogehoge’, max_age=_max_age, expires=_expires, path=’/’)return _response
こんな書き方をしたらできているようでした。上記の例だと、現在時刻から45日間有効なcookieを書き出しています。
単純なことなんですが、意外と躓いてしまった。。。
Python2.5、Django1.1.1です。
そういえばDjangoの1.2がリリースされてますね。検証したいな。