我正在使用Django 1.8构建一个用户可以注册的Django应用程序,但是在使用我的网站时他们可能会上传很多文件。
这是一个问题,因为似乎在Django中FileField
是一个数据库列,每次用户想要上传新文件时我都不能添加一列。
此外,文件可能完全不同,并且不遵循固定系统,因此我不能有一个列passport
或lease
的列,我想用FileDesield包含描述,并且将它存储在某个地方的数据库中。如何在Django中使用最佳实践?
答案 0 :(得分:1)
此问题不仅适用于文件,而且适用于您希望用户添加任意数量的任何数据的任何情况。解决方案是相同的:为用户定义一个带有ForeignKey的单独表。
class UserUpload(models.Model):
file = models.FileField(...)
description = models.CharField(...)
user = models.ForeignKey(User)
现在,您可以使用user.userupload_set.all()
获取所有用户的上传内容。