0

我有一个必须通过 Django ModelForm 一次上传多个文件的表单。

这个场景就像,我有一个表单,其中必须附加不同类别的文档。例如,可能有医疗记录、医生转诊、诊断报告等。这些类别中的每一个都存储在数据库中。我必须通过一个表单提交,根据它们各自的类别上传所有这些文件。

这是我的 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")

请告诉我处理表单提交的最佳方法。任何帮助将非常感激。

4

1 回答 1

0

我一直在做一个 Django 项目,还必须提交包含文件上传的表单。我不知道您与用户的交互方式如何,但我可以解释一下我的案例,希望它对您有所帮助并与您的案例相关。

在我的例子中,我使用 FormData 接口(“multipart”)通过 Web 提交我的表单,向服务器执行 POST。我的表单有时只包含简单的字段,有时可能包含各种文件上传。您可以使用 FormData 接口并将多个字段附加到一个对象,然后通过 POST 将其发送到您的 Django 服务器。就我而言,我也将它与 JQuery AJAX 异步使用,尽管这不是必需的。

您可以在 W3Schools上找到这方面的基本思想,并且可以在此处尝试一些 javascript 示例。此外,如果您有任何异步约束(AJAX),这里有一个很好的起点Stack Overflow

祝你好运

于 2017-04-29T21:37:14.583 回答