Django と AngularJS はどちらもすでに CSRF をサポートしています。あなたの部分は非常に単純です。
まず、Django で CSRF を有効にする必要があります。すでに有効になっていると思います。そうでない場合は、Django のドキュメントhttps://docs.djangoproject.com/en/1.5/ref/contrib/csrf/#ajaxに従ってください。
これで、Django は最初の GET リクエストで指定された Cookie を設定し、その後の POST/PUT/DELETE リクエストでcsrftoken
カスタム HTTP ヘッダーを期待します。X-CSRFToken
Angular の場合、名前付きの Cookie を想定し、ヘッダーでXSRF-TOKEN
POST/PUT/DELETE リクエストをX-XSRF-TOKEN
実行するため、この 2 つを相互に連携させるには少し調整する必要があります。
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
上記の 2 行を js コードのどこかに追加します。module.config() ブロックはこれに適した場所です。
それでおしまい。
注:これは angular 1.1.5 用です。古いバージョンでは別のアプローチが必要になる場合があります。
アップデート:
angular アプリは django によって提供されないため、cookie を設定できるようにするには、最初に angular アプリが django に対して GET 要求を行う必要があります。