我正在为图片库页面生成模板。我的方法如下:
所以我的观点是
def some_gallery(request):
#LOGIC TO GET A LIST OF FILENAMES
variables = RequestContext(request,{
'user' : request.user,
'title' : 'something',
'files' : fileList
})
return render_to_response('gallery_template.html',variables)
和模板
....
{% for file in files %}
<img src="/path/to/images/{{ title }}/{{ file }}">
{% endfor %}
....
我遇到的问题是当我尝试使用os.listdir函数时,Django会出现500错误。如何获取我需要的文件列表?
提供500错误的视图的有问题版本
def some_gallery(request):
variables = RequestContext(request,{
'user' : request.user,
'title' : 'something',
'files' : os.listdir('/path/to/gallery')
})
return render_to_response('gallery_template.html',variables)
另外我应该注意文件路径确实有效,所以如果我直接转到网址,我会按预期得到图片。
编辑:修复了代码示例中的拼写错误
答案 0 :(得分:2)
您的字典不是有效的python代码,因为您使用的是“=”而不是“:”。它应该是:
variables = RequestContext(request,{
'user' : request.user,
'title' : 'something',
'files' : os.listdir('/path/to/gallery')
})
最后一件事,listdir需要一个abosulte路径,你可以通过以下方式获得项目的根路径:
ROOT_PATH = os.path.abspath(os.path.dirname(__file__).decode('utf-8')).replace('\\', '/')
答案 1 :(得分:2)
我把它整理好了。我的方法是正确的,所以任何想要做这类事情的人,代码样本都应该有用。
我遇到的问题是Django因为访问提供的文件路径时遇到一些问题而绊倒了listdir函数调用。我确保目录权限和路径是正确的并且有效。
感谢那些帮助过的人。