我試圖用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