verificación solicitud not forbidden fallida cookie abortada django django-forms

django - solicitud - forbidden csrf cookie not set



La verificación Django CSRF falló. Solicitud cancelada. No se ha establecido la cookie CSRF. (1)

Su configuración de CSRF está bien. El problema es que no estás devolviendo el resultado . Recuerde que la vista es una función. Necesitas return render_to_response(...) no solo llamarlo (que también es la razón por la eliminación de CSRF que obtuviste didn''t return an HttpResponse error didn''t return an HttpResponse )

Aparte de eso, estás haciendo algunas cosas generales que son drágicamente erróneas:

Por lo tanto:

def submit(request): # global alphabet_array dishes = Dish.objects.all().order_by(''name'') if request.method == "POST": print request.POST[''restaurant''] print request.POST[''rating''] return render(request, ''index.html'', {})

Sé que esta pregunta se ha hecho antes. He intentado casi todas las opciones dadas por las personas pero parece que no puedo resolverlo. Soy un novato completo, así que por favor avíseme en qué me estoy equivocando.

Estoy tratando de escribir una simple forma cruda. No he implementado ningún mecanismo de autenticación o sesión hasta ahora (pero por lo que he leído que no tiene importancia para este problema. Corrígeme si estoy equivocado).

Cuando intento enviar mi formulario, aparece este error:

Forbidden (403) CSRF verification failed. Request aborted. Reason given for failure: CSRF cookie not set.

Este es mi código:

Mi Views.py tiene este método:

def submit(request): global alphabet_array dishes = Dish.objects.all().order_by(''name'') if request.method == "POST": print request.POST[''restaurant''] print request.POST[''rating''] render_to_response(''index.html'', {}, context_instance=RequestContext(request)) else: render_to_response(''index.html'', {}, context_instance=RequestContext(request))

Muchos han dicho que el uso de RequestContext resuelve este problema, pero para mí, incluso eso no está funcionando.

La plantilla se ve a continuación:

<form role="form" action="/submit/" method="post">{% csrf_token %} <div class="form-group"> <label for="">Restaurant Name</label> <input type="text" name="restaurant" class="form-control" id=""> </div> <div class="form-group"> <label for="">Rating</label> <select class="form-control" name="rating"> <option>--</option> <option>1 (very bad)</option> <option>2 (bad)</option> <option>3 (average)</option> <option>4 (good)</option> <option>5 (excellent)</option> </select> </div> <button type="submit" class="btn btn-primary btn-block"><i class="fa fa-check-circle"></i> Save</button> </form>

El middleware_classes en settings.py se parece a:

MIDDLEWARE_CLASSES = ( ''django.middleware.common.CommonMiddleware'', ''django.contrib.sessions.middleware.SessionMiddleware'', ''django.middleware.csrf.CsrfViewMiddleware'', ''django.contrib.auth.middleware.AuthenticationMiddleware'', ''django.contrib.messages.middleware.MessageMiddleware'', )

django.middleware.csrf.CsrfViewMiddleware está ahí y está debajo de ''django.contrib.sessions.middleware.SessionMiddleware''

Mi url.py tiene entradas:

url(r''^admin/'', include(admin.site.urls)), url(r''^index/$'', ''testapp.views.index''), url(r''^starts_with/(?P<alphabet>.+)/dish/(?P<dish_id>/d+)/$'', ''testapp.views.alphabet_dish''), url(r''^starts_with/(?P<alphabet>.+)/$'', ''testapp.views.alphabet''), url(r''^submit/$'', ''testapp.views.submit''),

Realmente no estoy seguro de cuál es el problema aquí. Como dije, he leído publicaciones similares aquí y he intentado todo lo mencionado en las respuestas. ¿Qué me he perdido? Mi navegador es Chrome y está aceptando cookies.