2017-09-11 40 views
0

我正在開發一個Django項目,並且我有以下「問題」。 我有一個本地目錄,有子目錄,其中我有一些PDF文件。例如:在Django視圖中瀏覽本地目錄和文件

主要方向:

|-->2000 
____|-->A 
________|-->file1.pdf 
________|-->file2.pdf 
____|-->B 
________|-->file3.pdf 
____|-->C 
________|-->... 
____|-->D 
________|-->... 
|-->2001 
___|--> ... 
|-->2002 
___|--> ... 

的所有文件夾包含成千上萬的PDF文件。

我想在Django視圖中顯示此目錄,讓用戶通過點擊子目錄和PDF文件來瀏覽它,以便他可以在瀏覽器中查看它們,甚至可以添加「下載PDF」按鈕。我也想對它進行一些格式化,如果可能的話,也許還會在將來添加搜索功能。

這是我第一次使用本地文件和Django,所以我有點迷路。

謝謝你的時間!

+0

這有點廣泛。你需要顯示你已經嘗試過什麼,什麼沒有工作。 –

+0

刪除了完全不相關的「pdf」和「web部署」標籤... –

+0

我沒有嘗試過很多說實話。我仍然計劃如何完成這項工作,因爲我是一個完整的業餘愛好者,所以我想我會用一些幫助來做到這一點。我正在考慮使用os.listdir方法來獲取目錄,並通過將結果呈現到模板中,然後使目錄「可點擊」並移動更深等來移動目錄。 –

回答

0

你可以使用的ListView這樣

class FileObject(): 

    name = '' 

    def __init__(self, name): 
     self.name = name 

class DirListView(ListView): 

    template_name = 'main/list_dir.html' 

    def get_queryset(self): 
     files = [] 
     for filename in os.listdir(path): 
      fileobject = FileObject(name=filename) 
      files.append(fileobject) 
     return files 

這ListView中可以像任何其他的ListView使用。不確定關於路徑的權限和位置。這必須由settings.py steared我猜

+0

謝謝你的想法,我會給它一個去,看起來很容易和可行!我會很快恢復結果:D –