¿Por qué no aparece el marcado para el campo de entrada oculto cuando uso {{ csrf_token }}
?Django {{csrf_token}} está produciendo solo el valor del token, sin la marca de entrada oculta
He aquí un fragmento de mi plantilla:
<form action="." method="post">
{{ csrf_token }}
Estoy esperando algo como esto a generarse:
<form action="." method="post">
<input type="hidden" name="csrfmiddlewaretoken" value="0c90dab91e22382cbaa5ef375f709167">
Pero en cambio, este es el HTML que se genera:
<form action="." method="post">
0c90dab91e22382cbaa5ef375f709167
He hecho esto muchas veces y está funcionando bien en mis otros proyectos, pero d No sé lo que me perdí esta vez.
Mi archivo views.py se ve así:
from django.shortcuts import render_to_response
from django.template import RequestContext
def home(request):
return render_to_response('home.html',
context_instance=RequestContext(request))
Como se puede ver, estoy usando RequestContext. Mis clases de middleware se definen como esta en el archivo settings.py:
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',
)
Así que estoy usando django.middleware.csrf.CsrfViewMiddleware. Además, estoy en Django 1.3.0. ¿Alguna idea por ahí?
no es '{% csrf_token%} '- como una etiqueta de plantilla, en lugar de generar' unicode (csrf_token) '? – phoku
Gosh maldita sea. No puedo pensar o leer directamente a las 2 de la mañana. Estás absolutamente en lo correcto. Escríbalo como una respuesta y lo aceptaré. Muchas gracias;) –