gpt4 book ai didi

python - 我怎样才能从Python列表中制作树状菜单

转载 作者:行者123 更新时间:2023-11-29 13:47:13 26 4
gpt4 key购买 nike

我有文件夹列表中的文件名。该列表包含 2000 个这样的文件名

Countries/US/newyork/file1.pdf
Countries/Australia/Sydney/file1.pdf
Countries/Canada/Toronto/bla/blabla/file2.pdf

等等。

我想在数据库中索引这些文件,以便我可以拥有分层目录结构。

在我的 Django 应用程序中,我想首先显示根级菜单,例如

国家 --- 美国、澳大利亚、加拿大

然后我有人点击国家/地区,然后它会获得第二级文件夹等等,最后我想查看文件(如果没有更多文件夹)。

我不想每次都查询我的存储,而是想将所有这些信息存储在我的数据库中,以便从数据库显示我的网页,当用户单击下载时,我会从我的存储中获取文件

我无法找到如何为此制作模型或数据库表

最佳答案

我建议采用以下方式:

创建模型来存储您的树结构和文件,例如:

class Node(TreeModel):
parent # foreign key to Node

class File(Model):
node # foreign key to Node
name # name of file
path # path to the file on disk for example

之后将您的文件移动到一个或几个目录中(阅读此 How many files can I put in a directory? )您也可以重命名它们(例如通过使用文件中的哈希值)。

更新模型文件以添加文件的新路径。

完成此操作后,您可以轻松显示文件并构建文件路径等。

对于模型节点,使用 [django-mptt][1](django 还有其他解决方案,google 一下)来获取有效的 API 来管理树状模型。

你也可以创建自己的Django存储后端(或者在互联网上找到很多解决方案)。

已更新

您可以使用 django admin 添加新文件。您应该使用 amazon s3 django 存储后端 http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html .

更改:

class File(Model):
node # foreign key to Node
name # name of file
file # django models.FileField

在这种情况下,您不必更新索引。

关于python - 我怎样才能从Python列表中制作树状菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17228568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com