浏览Django View中的本地目录和文件

时间:2017-09-11 12:15:28

标签: python django

我正在开发一个Django项目,我有以下“问题”。 我有一个具有子目录的本地目录,其中我有一些PDF文件。例如:

主要目录:

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

所有文件夹都包含数千个PDF文件。

我想在Django视图中显示该目录,让用户通过单击子目录和PDF文件来浏览它,这样他就可以在浏览器中查看它们,甚至可以添加“下载PDF”按钮。我也想格式化一下,如果可能的话,将来也可以添加一个搜索功能。

这是我第一次使用本地文件和Django,所以我有点迷失。

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

您可以像这样使用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来推测这个