django从目录内容创建链接

时间:2016-07-21 20:56:41

标签: django python-3.x django-templates django-views

我是Django的新手,并且很长一段时间没有使用过Python。我想让Django从目录中拉出文件,创建一个列表项,然后创建一个指向该文件位置的超链接。到目前为止,这是我在我的观点中定义它的方式:

    def docs(request):
        root="/Users/user"
        workingDir="files"
        Path=os.path.join(root, workingDir)
        os.chdir(Path)
        files=os.listdir(".")
        dirListUrls=[]
        for file in files:
            dirListUrls.append(os.path.join(root, workingDir, file)

        directoryList={'dirList': {'files': files, 'dirListUrls': dirListUrls}
        return render(request, 'mySite/documents', directoryList)

在我的模板中有以下内容:

{% for item in dirList.files}
    <li><a href="#">{{ item }}</a></li>
{% endfor %}

我想创建一个可以通过以下方式访问的字典:

{% for item in dirList %}
    <li><a href="{{ dirList.url }}">{{ dirList.file }}</a></li>
{% endfor %}

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用zip

def docs(request):
    ...
    context = {'dirList': zip(files, dirListUrls)}
    return render(request, 'mySite/documents', context)

{% for item in dirList}
    <li><a href="#{{ item.1 }}">{{ item.0 }}</a></li>
{% endfor %}