我是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 %}
提前致谢。
答案 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 %}