Tengo un formulario que tiene que hacer varias cargas de archivos a la vez, a través de Django ModelForm.
El escenario es como, tengo un formulario en el que se deben adjuntar diferentes categorías de documentos. Por ejemplo, puede haber registros médicos, referencias médicas, informes de diagnóstico, etc. Cada una de estas categorías se almacena en la base de datos. Tengo que subir todos estos documentos según sus respectivas categorías, a través de un solo formulario de envío.
Aquí están mis modelos de Django.
class Patient(models.Model): first_name = models.CharField(_("First Name"), max_length=30) last_name = models.CharField(_("Last Name"), max_length=30) email = models.EmailField(max_length=255) class DocumentType(models.Model): """ Type of document to be attached alongside a Patient. """ name = models.CharField(max_length=255) class DocumentFile(BaseModel): """ Documents to be attached alongside each document type within a Patient Case. Multiple documents to be attached. """ type = models.ForeignKey(DocumentType) attachment = models.FileField(upload_to=get_new_documents_path, blank=True) patient = models.ForeignKey(Patient, related_name="get_applicable_documents")Dígame cuál es el mejor método para procesar el envío del formulario. Cualquier ayuda sería muy apreciada.
He estado trabajando en un proyecto de Django y también tengo que enviar formularios que contienen cargas de archivos. No sé cómo interactúa exactamente con sus usuarios, pero puedo explicar mi caso y espero que ayude y se relacione con el suyo.
En mi caso utilizo la interfaz FormData ("multipart") para enviar mis formularios a través de la Web, realizando POST al servidor. Mis formularios a veces contienen solo campos simples, y otras veces pueden contener varias cargas de archivos. Puede usar la interfaz FormData y agregar múltiples campos a un objeto, y luego enviarlo a su servidor Django a través de POSTing. En mi caso, también lo estoy usando con JQuery AJAX de forma asíncrona, aunque eso no es un requisito.
Puede encontrar la idea básica para esto en W3Schools , y puede probar algunos ejemplos de javascript aquí . Además, si tiene restricciones asincrónicas, AJAX, hay un buen punto de partida aquí en Stack Overflow .
Buena suerte