Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

476
Visualizações
Error de formas crujientes de Django: la entrada de imágenes múltiples no muestra diferentes nombres de archivo

Tengo un formulario crujiente con un campo de entrada de imagen que acepta varias imágenes:
images = forms.ImageField(widget=forms.FileInput(attrs={'class': 'form-control', 'multiple': True}), required=False)
El formulario funciona perfectamente bien y las imágenes se cargan y se pueden procesar en el backend.

Sin embargo, hay un error de interfaz extraño: por lo general, cuando selecciona varias imágenes para cargar en un campo de imagen crujiente, muestra todos los nombres de archivo de las imágenes seleccionadas como una lista en ese widget. Sin embargo, en mi caso, solo muestra el nombre de uno de los archivos, varias veces (para ser precisos: para cada archivo seleccionado, muestra el nombre de uno de los archivos una vez).
Por ejemplo, si selecciono tres archivos con nombres diferentes, uno de los cuales se llama 'kangaroo.png', el widget se ve así: Error de interfaz

Ahora he precisado el problema a este pequeño fragmento:

 <div class="custom-file "> <input type="file" name="images" class="form-control fileinput fileUpload form-control-file custom-file-input" multiple accept="image/*" id="id_images"> <label class="custom-file-label" for="id_images">Choose file</label> <script type="text/javascript" id="script-id_images"> document.getElementById("script-id_images").parentNode.querySelector('.custom-file-input').onchange = function (e){ var filenames = ""; for (let i=0;i<e.target.files.length;i++){ filenames+=(i>0?", ":"")+e.target.files[0].name; } e.target.parentNode.querySelector('.custom-file-label').innerHTML=filenames; } </script> </div>

El problema radica en la línea que dice: filenames+=(i>0?", ":"")+e.target.files[0].name; .
Debería ser claramente: filenames+=(i>0?", ":"")+e.target.files[i].name; .

Y, por supuesto, cuando investigué el código de los formularios crujientes, encontré el código correcto usando i como índice en lugar de 0. (La ruta a ese archivo es crispy_forms\templates\bootstrap4\layout\field_file.html en caso de que quiera echar un vistazo)

Así que ahora me pregunto, ¿qué pasó? ¿Dónde cambió la i a un 0? ¿Se trata de un error con formularios crujientes que debe informarse o el problema podría estar dentro de mi proyecto?

Editar: Este fue un error en las versiones de django anteriores a 1.9.1 que se corrigió en este compromiso .

about 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda