Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

333
Vistas
Problema con el token CSRF cuando agrego dropzone a un formulario existente en Django

Estoy trabajando con un formulario Django usando dropzone para cargar imágenes. Pero no quiero agregar la zona de descenso a todo el formulario, solo a una parte del mismo. Aquí está la plantilla:

 {% extends 'base.html' %} {% load static %} {% load i18n %} {% block content %} <h6>UPLOAD MULTIPLE IMAGES NOW</h6> <br> <div class="formdiv" style="width:100%"> <form enctype="multipart/form-data" action="upload/" methd="POST"> {% csrf_token %} <fieldset> <label for="yourname">Yourname <input type="text" value="name" /> </label> <div class="dropzone dz" id="my-dropzone"> <div class="dz-message" data-dz-message><span>{% trans "Drop here or click to upload" %}</span></div> <div class="fallback"> <input name="file" type="file" multiple /> </div> </div> </fieldset> </form> </div> {% endblock %}

El problema es que cuando intento subir cualquier imagen me sale un mensaje de error de Prohibido con el siguiente texto:

 CSRF token missing or incorrect.

Tenga en cuenta que si class="dropzone dz" id="my-dropzone" del div y lo coloco dentro de la etiqueta <form> , todo funcionará. El problema comenzó exactamente cuando moví Dropzone en un div porque no quería que se aplicara a todo el formulario.

Aquí está mi código de configuración de dropzone:

 Dropzone.autoDiscover=false; const myDropzone = new Dropzone('#my-dropzone',{ url:'upload/', maxFiles:15, maxFilesize:5, // 5 mb max //parallelUploads:2, // if image is horizontal, then resize it if it's more than resizeWidth resizeWidth:1024, // if the image is vertical, then resize if it's more than resizeHeight resizeHeight:1024, // also they can be mime such as image/png acceptedFiles: ".png,.jpg,.gif,.bmp,.jpeg,.webp", // default is false and it allows to delete uploaded files addRemoveLinks: true, // this is the element where the remove button or text will be located dictRemoveFile: "<div><span class='fa fa-trash text-danger' style='font-size: 1.5em;cursor:pointer'></span></div>", /* the following solution failed headers: { 'X-CSRFToken': $('meta[name="token"]').attr('content') } */ });

¿Qué tengo que hacer para solucionar este problema?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Al mirar los documentos de Django, veo que se llama X-CSRFToken no X-CSRF-TOKEN . Intente arreglar eso y descomentar su código de encabezado.

El código que veo en los documentos para obtener el token es document.querySelector('[name=csrfmiddlewaretoken]').value intenta reemplazar el tuyo con eso. Solo asegúrese de tener {% csrf_token %} en alguna parte de su página.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda