如何让用户在django中创建子文件夹并上传文件?

时间:2015-06-08 11:58:11

标签: django python-2.7

我基本上想让用户在他们的media / user_id /文件夹中创建自己的存储库或子文件夹,并在他们创建的文件夹中上传文件。

1 个答案:

答案 0 :(得分:2)

你可以让用户很容易在他们的个人资料中创建一个文件夹结构 - 文件夹结构在概念上只是一组指针,它可以很容易地用django模型实现,在我看来这将是一个更好的方法它不是让用户在服务器上创建实际的文件夹,而是维护它可能很烦人。

您只需要您的图片模型具有可选的folder fk,并且您的folder模型可以拥有对其自身的fk引用。这使您可以更好地控制文件夹,并允许您轻松地为用户提供将文件从文件夹移动到文件夹,删除文件夹和所有包含的图像等的选项。

作为一个基本的例子:

class UserFolder(models.Model):
    name = models.CharField(...)
    parent = models.ForeignKey("Folder", null=True,)  # self-referential

class UserImage(models.Model):
    name = models.CharField(...)
    image = models.ImageField(...)
    # Optional, null folder could just mean it resides in the base user folder
    folder = models.ForeignKey(Folder, null=True,)