【问题标题】:Upload multiple files at once, with different sets of categories - Django forms一次上传多个文件,具有不同的类别集 - Django 表单
【发布时间】:2017-04-29 16:28:21
【问题描述】:

我有一个表单,它必须通过 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")

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

【问题讨论】:

    标签: django file-upload django-forms multiple-file-upload


    【解决方案1】:

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

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

    你可以找到这个at W3Schools的基本思想,你可以尝试一些javascript示例here。另外,如果你有任何异步约束,AJAX,有一个很好的起点here on Stack Overflow

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多