Para migrar seus forms ( contato / cadastro / login / etc) para suportar o CSRF é necessário alguns passos:
- Certifique-se que os middlewares do crsf estejam no settings, confome a parte 1 deste tutorial (http://djangoweb.blogspot.com/2011/04/migrando-para-versao-13-parte-1-o.html)
- Coloque no seu form, a tag para geração do token do CSRF:
{% csrf_token %}
- Na view que receberá o POST, valide o token enviado pelo form da seguinte forma:
from django.core.context_processors import csrf
c = {}
c.update(csrf(request))
- Caso precise excluir uma view dessa validação, como quando recebe-se o post de terceiros, por exemplo, basta utilizar o decorator @csrf_exempt:
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def sua_view_aqui(request):
pass
Nota: para requisições ajax, o token também deverá ser passado.
hasta!