Desabilitando o csrf em uma view no Django


No Django, as vezes é necessário fugir do controle do csrf, então basta agente colocar um decorator na view, desta forma:

Digamos nossa view a seguir:

from django.views.decorators.cache import never_cache
from django.contrib.auth.decorators import login_required

@login_required(redirect_field_name='next')
@never_cache
def anexar(request, tela_id, registro):
    '''Grava os arquivos que foram uploadeados nos anexos de tela'''
    #... codigo ....

Ficará assim, usando o decorator csrf_exempt:

from django.views.decorators.cache import never_cache
from django.contrib.auth.decorators import login_required
from django.views.decorators.csrf import csrf_exempt

@login_required(redirect_field_name='next')
@never_cache
@csrf_exempt
def anexar(request, tela_id, registro):
    '''Grava os arquivos que foram uploadeados nos anexos de tela'''
    #... codigo ....

Assim não será validado se tem o codigo csrf cross-site.
OBS.: Utilize com cuidado e somente quando em extrema necessidade!

t+

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s