2016-07-21 6 views
0

私はDjangoを初めて使用していて、かなり長い間Pythonを使用していません。私はDjangoがディレクトリからファイルをプルし、リストアイテムを作成し、そのファイルの場所へのハイパーリンクを作成しようとしています。これまでのところ、これは私が私の意見で、それを定義した方法である:私のテンプレートで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

あなたは、静的またはメディアのいずれかのファイルを提供しようとしているように聞こえます。これらの方法については、ドキュメントをご覧ください。https://docs.djangoproject.com/en/1.9/howto/static-files/ https://docs.djangoproject.com/en/1.9/topics/files/ – fodma1

答えて

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 %} 
+0

ジップ機能は私が必要なもののために働いた、ありがとう。 – tonryray

+0

@tonryray私の答えがあなたの問題を解決した場合、あなたはそれを次のように受け入れることができます:http://stackoverflow.com/help/someone-answers –

関連する問題