我试图用django来模拟文件浏览器应用程序。我的基本模型是用户拥有项目的位置,项目中有文件和其他也可以有文件的子目录。有一个django模型可以属于两个其他模型(外键关系)
这是我的models.py文件
class CaseFolder(models.Model):
name = models.CharField(max_length = 255)
class SubFolders(models.Model):
name = models.CharField(max_length = 255)
case = models.ForeignKey(CaseFolder)
class Documents(models.Model):
file = models.FileField(upload_to=set_upload_path)
belongs_to = models.ForeignKey(SubFolders)
截至目前,我创建一个“主”文件夹,这基本上是有其他子目录的根文件夹。主文件夹也可以包含不属于子目录的文件。
如果我可以通过使文档模型引用根文件夹来消除对“主”文件夹的需要(如果他们不想属于子目录),那将会更好。只有这样我才能看到这是下面。但想知道是否有更好的方法
class Documents(models.Model):
file = models.FileField(upload_to=set_upload_path)
belongs_to = models.ForeignKey(SubFolders,Null = True)
belongs_to_root = models.BooleanField(deafult=False)
要添加此OP可能也想看看使用MPTT – whoisearth
这个作品..谢谢.. @whoisearth - 你会推荐使用MPTT在上述代码的任何原因吗? – Kannaj
@Kunkka - 我提供了一个替代解决方案作为答案和简短的解释。 – whoisearth