提取键/值信息
问题描述:
我有过保存图像,并返回文件名作为关键字和文件日期为值的字典文件系统的目录遍历视图代码:提取键/值信息
def export_dir(request):
user = request.user
path = '/Users/darius/Desktop/archive/111715/large/'
file_arr = os.listdir(path)
records = {}
for item in file_arr:
date = os.stat(os.path.join(path + item)).st_mtime
filetime = time.ctime(os.stat(os.path.join(path + item)).st_mtime)
if item.startswith('.'):
continue
records[item] = filetime
variables = RequestContext(request, { 'user': user, 'records': records })
return render_to_response("b5/export.html", variables)
我怎么解压数据在模板中?目前,我正在使用自定义模板过滤器:
from django.template.defaulttags import register
...
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
和我的模板标签是这样的:
{% for record in records %}
<tr>
<td>{{ record|get_item:item.filename }}</td>
</tr>
{% endfor %}
,但我不能让过去......
VariableDoesNotExist at /export/
Failed lookup for key [item] in "[{'False': False, 'True': True, 'None': None}, {'records': {'3950_14064_9205_042_large_02.jpg': 'Tue Nov 17 22:26:23 2015', '5920_14009_1851_000_large_02.jpg': 'Tue Nov 17 20:14:34 2015', '0520_15129_0015_907_large_02.jpg': 'Tue Nov 17 21:05:22 2015', '4130_10343_2096_016_large_03.jpg': 'Mon Nov 16 17:17:46 2015’,..
是什么我在模板中需要的语法来访问字典数据,或者,我该如何修改我的视图代码?
答
相反的键,你只需调用值()您的记录方法获取值的字典模板
{% for file_date in records.values %}
<tr>
<td>{{ file_date }}</td>
</tr>
{% endfor %}
或者,如果你需要这两个键和值使用的物品的方法
{% for file_name, file_date in records.items %}
<tr>
<td>{{ file_date }}</td>
</tr>
{% endfor %}
答
有在您的字典中没有名为filename
的钥匙。 您应该创建一个列表,如下所示:
records_list = []
for item in file_arr:
record = {}
date = os.stat(os.path.join(path + item)).st_mtime
filetime = time.ctime(os.stat(os.path.join(path + item)).st_mtime)
if item.startswith('.'):
continue
record['filename'] = filename
record['filedate'] = filetime
records_list.append(record)
从哪里获得'item.filename'?你不会将任何'item'传递给模板。 – pythad
只需将其更改为 {{record | get_item:record.filename}} – Nick