2010年3月3日水曜日

Django:render_to_response と cookie の謎

 解決編はこちら

 Django のプロジェクトのデプロイを始めた。

 やっているうちに、テンプレートに context を渡す必要がでてきて、views.py のソースを
t = loader.get_template('item_search/item_list.html')
c = Context({'item_list':item,'title':search_tag})
response.write(t.render(c))
return response
 から
return render_to_response('item_search/item_list.html',
{'item_list':item,'title':search_tag},
context_instance=RequestContext(request))
 に変えた。

 テスト環境でとりあえずそのページが表示できたので良いことにして、次に進み、最終チェックの段になったら、そのページで投げるはずのクッキーが次のページで読めないとエラーになった。

 ググッてみても、それらしい情報はない。ソースを render_to_response を使わないように戻すと確かに動く。render_to_response を使うとやっぱり...、あれ?動く??

 テスト環境で動いたので、実環境でも render_to_response を使わないコードで一度動かす -> 使うコードで動かす、とやると動いた。

 動いたように見えたが、よく見るとクッキーが効いてない。render_to_response を使わないコードのときに投げたクッキーがそのまま生きている。

 なぜ?

0 件のコメント:

コメントを投稿