【Django】render_to_responseでCookieを設定する方法
Djangoのviews.py内で、Cookieを設定する処理を書きたいと思った。
ネットを検索しても、
response = HttpResponseObject(html)
response.set_cookie("key","value")
return response
というように、responseに設定するやり方ばっかり書いていた。
しかし、今回は、
class Hoge(ListView):
などの、ListViewやDetailViewを継承しているクラスをつかってCookieを設定したかった。
このクラスは、getやpostの戻り値が「return self.render_to_response(context)」というように、render_to_responseとなっている。
なので、やり方が少し違った。
render_to_responseでCookieを設定するやり方は以下
class Hoge(ListView):
def get(self, request, *args, **kwargs):
# ListViewのgetメソッドを継承
render_to_response = super().get(request, *args, **kwargs)
# ListViewのgetメソッドの戻り値のrender_to_responseにset_cookieで設定する
render_to_response.set_cookie("key","value")
# render_to_responseを返す
return render_to_response
このやり方を見つけるのに数時間もかかってしまった。
ディスカッション
コメント一覧
まだ、コメントがありません