В Django я хочу отображать папки, такие как Google Drive - PullRequest
0 голосов
/ 29 июня 2018

Это мой models.py. Отображение в формате структуры папок.

class Folder(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='userfolders')
    folder = models.ForeignKey("self", on_delete=models.CASCADE,related_name='folders', null=True, blank=True)
    name = models.CharField(_('Folder Name'), max_length=70)

class File(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='userfiles')
    folder = models.ForeignKey(Folder, on_delete=models.CASCADE, related_name='folderfiles')
    description = models.CharField(_('File Description'), max_length=70)
    location = models.FileField(_('Location of the File'), upload_to=file_location_path, null=True, blank=True)

В модели, как вы можете видеть, у меня есть папка с собственным внешним ключом, и файл может быть связан с папкой.

Folder------+---Old Folder
            +---Folder1-+--Cats.jpg
            |           +--File1.jpg
            +---File1.txt
File
Folder New -+---Puppy.jpg
            +---Dogs----+--Dog1.jpg
                        +--Dog2.jpg
                        +--Dog3.jpg

| 1st level | 2nd level | 3rd level |

Как я могу сначала отобразить 1-й уровень, а затем, если пользователь выбирает папку, она должна показывать ее содержимое. например, если выбрана папка New, пользователи должны увидеть файл с именем Puppy.jpg и папку с именем Dogs. Это возможно?

...