【问题标题】:I want a Django user to upload an arbitrary number of files我希望 Django 用户上传任意数量的文件
【发布时间】:2016-05-14 09:27:52
【问题描述】:

我正在使用 Django 1.8 构建一个 Django 应用程序,用户可以在其中注册,但他们可能会在使用我的网站时上传许多文件。

这是一个问题,因为在 Django 中,FileField 似乎是一个数据库列,我不能每次用户想要上传新文件时都添加一个列。

此外,文件可能完全不同,并且不遵循固定系统,所以我不能有一个写着 passportlease 的列,我想用描述包装 FileField,并将其存储在数据库某处。 Django 的最佳实践是如何做到的?

【问题讨论】:

  • 有多种可能的方法,但其中一种是创建一个“附件”模型,该模型具有一个 FileField、一个描述字段和一个 ForeignKey 到您的主模型。

标签: python django


【解决方案1】:

此问题不仅适用于文件,还适用于您希望用户添加任意​​数量的任何数据的任何情况。解决方法是一样的:为用户定义一个带有 ForeignKey 的单独表。

class UserUpload(models.Model):
    file = models.FileField(...)
    description = models.CharField(...)
    user = models.ForeignKey(User)

现在您可以使用user.userupload_set.all() 获取用户的所有上传。

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2019-10-15
    • 2021-11-27
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多