簡體   English   中英

如何從python列表制作樹狀菜單

[英]How can i make the tree like menus from python list

我在文件夾列表中有文件名。 列表中包含2000個這樣的文件名

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

等等。

我想索引數據庫中的那些文件,以便可以具有分層目錄結構。

在我的Django應用中,我想首先顯示根目錄菜單,例如

countries --- US , Australia, canada

然后,我有人單擊國家,然后它得到了第二級文件夾,依此類推,最后我想查看是否沒有更多文件夾。

而不是查詢我的存儲時間,我想將所有這些信息存儲在數據庫中,以便從DB顯示我的網頁,並且當用戶單擊“下載”時,我將從Storage獲取文件。

我找不到我應該如何制作模型或數據庫表

我建議以下方式:

創建模型來存儲樹結構和文件,例如:

 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 

之后 ,將文件移動到一個或幾個目錄中(請閱讀本文我可以在目錄中放入多少個文件? ),也可以重命名它們(例如,通過使用文件中的哈希值)。

更新模型文件以在其中放置文件的新路徑。

完成此操作后,您可以輕松顯示文件並建立文件路徑等。

對於模型節點,請使用[django-mptt] [1](針對django的其他解決方案,請在google上找到它)來獲取有效的API,以管理類似樹的模型。

您還可以創建自己的Django Storage Backend(或在Internet上找到許多解決方案)。

更新

您可以使用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 

在這種情況下,您不必更新索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM