¿Cómo se manejan múltiples campos de archivos en Django. Por ejemplo, si tuviera solo un campo de formulario, pasaría la solicitud. FICHAS ['archivo'] a una función de manejo. Pero, ¿cuál es el camino a seguir cuando hay más archivos?formulario django con múltiples campos de archivo
Respuesta
request.FILES.get('filename', None)
responde a la existencia de un campo de formulario con nombre de la siguiente manera:
<input type="file" name="filename"></input>
Si tuviera dos de estos campos:
<input type="file" name="file1"></input>
<input type="file" name="file2"></input>
Entonces request.FILES.get('file1', None)
y request.FILES.get('file2', None)
deben darle esos archivos respectivamente.
El motivo es el mime multiparte. Las tres partes (datos de formulario, archivo1, archivo2) deben cargarse y UploadFileHandler de Django divide esto en request.POST
y request.FILES
respectivamente.
Llego tarde a la fiesta, pero he estado tratando de resolver esto por un tiempo y finalmente tengo una solución. Eche un vistazo al código usado aquí: https://code.djangoproject.com/ticket/12446
Puede acceder a valores de varias partes con la lista de resultados. Si mi formulario HTML fue:
<form enctype="multipart/form-data" action="" method="post">
<input type="file" name="myfiles" multiple>
<input type="submit" name="upload" value="Upload">
</form>
Mi código de Django para procesar que se vería así:
for afile in request.FILES.getlist('myfiles'):
# do something with afile
Escribir un campo de formulario/widget para manejar esto correctamente es mi siguiente paso. Todavía soy bastante nuevo para usar Django, así que estoy aprendiendo sobre la marcha.
¿Cómo haces eso? puedes mostrar el ejemplo? Quiero que el usuario del artista cargue varios archivos al mismo tiempo en la misma forma. –
Aquí hay un buen enlace para esta respuesta: https://github.com/Chive/django-multiupload. Sin embargo, como no estaba usando ModelForm, tuve que hacer algunos cambios. En vista, he escrito debajo del código y guardado los archivos en el disco:
for each in form.cleaned_data['attachments']:
handle_uploaded_file(each)
def uploadMyWork(request):
from .forms import UploadFileForm, handle_uploaded_file
print 'in uploadMyWork'
if request.method == 'GET':
print 'in uploadMyWork : GET'
form = UploadFileForm()
else:
form = UploadFileForm(request.POST, request.FILES)
print 'in uploadMyWork : POST'
#for each in form.cleaned_data['attachments']:
# handle_uploaded_file(each)
#return render(request, 'stitchme/uploadMyWork.html', {'msg': "file uploaded successfully"})
if form.is_valid():
print 'inside form valid'
for each in form.cleaned_data['attachments']:
handle_uploaded_file(each)
return render(request, 'stitchme/uploadMyWork.html', {'msg': "file uploaded successfully"})
print 'returning to uploadmywork'
return render(request, 'stitchme/uploadMyWork.html', {'form': form, 'msg':'hi'})
- 1. Django: values_list() múltiples campos concatenados
- 2. Django agrupación de campos de formulario
- 3. Django-admin por múltiples campos
- 4. Django: ¿Reutilizar campos de formulario sin heredar?
- 5. Django Haystack autocompletado en dos (múltiples) campos
- 6. entrada simple_form con múltiples campos
- 7. Adición de campos adicionales al formulario de registro django
- 8. Django - Cómo llenar previamente los campos de formulario de administrador
- 9. Formulario modelo django. Incluir campos de los modelos relacionados
- 10. Django, identificadores únicos para los campos de formulario
- 11. ¿Cómo se ocultan dinámicamente los campos de formulario en Django?
- 12. Tutorial sobre cómo escribir campos de formulario personalizados en django?
- 13. Django - Trabajando con múltiples formas
- 14. ¿Cómo actualizar múltiples campos de una instancia de modelo django?
- 15. Django: ahorro de campos múltiples ManyToMany dentro de una transacción
- 16. ¿Cómo usar campos de formulario personalizados para campos de modelo en el administrador de Django?
- 17. Formulario de actualización Django
- 18. Generación automática de campos de formulario para un formulario en django
- 19. Múltiples aplicaciones con django
- 20. Almacenar campos dinámicos en formularios de Django
- 21. Validación que abarca múltiples campos
- 22. Relación ManyToMany de Django con campos adicionales
- 23. jQuery - Inhabilitar campos de formulario
- 24. django formulario en línea con formularios personalizados
- 25. webrat autofilling campos de formulario
- 26. ¿Cómo puedo construir múltiples botones de envío formulario django?
- 27. django - fieldsets de formulario dinámicos
- 28. Formulario Django archivo de campo desaparece en forma de error
- 29. django - django-taggit formulario
- 30. Buscar base de datos MySQL con múltiples campos en un formulario
no funciona, lo hago de esta manera. 'newsform = NewsAddForm (request.POST o None, request.FILES.get (' image_news1 ', None), request.FILES.get (' image_news2 ', None))' – Aryan