【问题标题】:How to access multiple files stored in a file field in django?如何访问存储在 django 文件字段中的多个文件?
【发布时间】:2020-10-13 14:47:56
【问题描述】:

我们可以在一个文件字段中保存多个文件,在 HTML 输入标签中使用 multiple 属性并在视图中使用 request.FILES.getlist()for 循环。
这可以正常工作,但问题是:
当我们在一个对象的一个​​文件域中保存多个文件时,如何在模板中访问所有这些文件? 我尝试了与下面的代码相同的方法,但没有成功:

{% for foo in obj.filefield %}
    {{ foo }}
{% endfor %}

【问题讨论】:

  • 你不能在同一个FileField中存储多个文件。
  • 这篇文章解释了如何在同一个文件字段中保存多个文件:stackoverflow.com/questions/38257231/…
  • 正如答案所说,您定义了一个额外的模型,在相关模型中,FileField 每次存储 一个 文件。
  • 所以no,它没有将它保存在same文件字段中。
  • 但所有文件都存储在对象的文件字段的路径中。

标签: django django-templates


【解决方案1】:

不能在同一个FileField [Django-doc] 中存储多个文件。您只能存储一个文件。如果你需要存储多个文件,你可以做一个额外的模型:

class MyModel(models.Model):
    # …
    pass

class MyModelFile(models.Model):
    my_model = models.ForeignKey(
        MyModel,
        related_name='files'
        on_delete=models.CASCADE
    )
    file = models.FileField()

因此对于MyModel 对象,您可以添加多个MyModelFile,然后每个MyModelFiles 存储一个文件。

然后你可以像这样渲染这些:

{% for file in obj.files.all %}
    {{ file.file }}
{ %endfor %}

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2021-04-22
    • 2022-06-16
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多