El error está en la localización http://127.0.0.1:8000/fileupload/form.pyDjango: CSRF token de falta o incorrecta
Tengo la versión 1.3 de Django. He intentado especificar localhost: 8000 como se indica en la pregunta de otra persona, pero esto no funcionó para mí. Estoy tratando de tener un formulario de carga de archivos, pero recibo un error que form.py no tiene el token CSRF.
form.py:
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
views.py:
def upload_file(request):
c = {}
c.update(csrf(request))
if (not request.user.is_authenticated()) or (request.user == None):
return HttpResponseRedirect("/?error=11")
if request.method == 'POST':
form = c['UploadFileForm'] = UploadFileForm(request.POST, request.FILES, c, context_instance=RequestContext(request))
if c['UploadFileForm'].is_valid():
handle_uploaded_file(request.FILES['file'])
return HttpResponseRedirect('/success/url/')
else:
form = c['UploadFileForm'] = UploadFileForm()
return render_to_response('fileupload/upload.html', {'form': c['UploadFileForm']})
Upload.html:
{% block main_content %}
<form action="fileupload/form.py" enctype="multipart/form-data" method="POST">
{% csrf_token %}
<table>
<tr><td>Title:</td><td><input type="text" name="title" /></td></tr>
<tr><td>File:</td><td><input type="file" name="file" /></td></tr>
</table>
<input type="submit" value="Submit" class = "float_right button_input" />
</form>
{% endblock main_content %}
Estoy muy confundido por favor dígame algunas cosas para probar. Gracias
Ya tiene usó '{% csrf_token%}' en su plantilla, así que esto debería funcionar. –
con la adición de RequestContext obtengo un error de tipo __init __() obtuve un argumento de palabra clave inesperado 'context_instance' – user1072646
Gracias, acabo de descifrarlo. Estaba agregando RequestContext (solicitud) como dijiste y quitando c y context_instance = de la instrucción if. Si cambias tu respuesta para incluirla, la marcaré correctamente. – user1072646