DjangoのCSRF対応

ちょっとだけハマったのでメモ。
と言っても、チュートリアルに書いてあるのそのままだけど。

formの中に、{% csrf_token %}を入れる。

<form action="./" method="POST">
    {% csrf_token %}
    <table>{{ form }}</table>                                          
    <input type="submit">                                              
</form>

viewでは、render_to_responseのパラメータにcontext_instance=REquestContext(request)を追加してやる。

from django.template import RequestContext

def hoge_post(request):
    ....
    return render_to_response("template.html",{},context_instance=RequestContext(request))