如何将 csv 文件解析为 django 模板并按以下方式排序:
我的文件.csv
status, date, user, rating
Registered, 12-10-2016, user1, 8.75
Registered, 22-05-2016, user2, 9.23
Registered, 19-11-2016, user3, 7.00
目前我正在尝试做这样的事情:
Views.py
args = {}
file_url = urllib2.Request("http://server.local:8000/static/myfile.csv", None, {'User-Agent': 'Mozilla/5.0'})
file_url_response = urllib2.urlopen(file_url)
pre_reader = csv.reader(file_url_response)
args['list'] = pre_reader
return render_to_response('template.html', args)
template.html
{% for row in list %}
<p>
{% for item in row %}
{{ item }}
{% endfor %}
</p>
{% endfor %}
呈现的 HTML 响应是:
status, date, user, rating
Registered, 12-10-2016, user1, 8.75
Registered, 22-05-2016, user2, 9.23
Registered, 19-11-2016, user3, 7.00
但是我想做这样的事情:
<table>
{% for row in list %}
<tr>
<td>
{{ row.status }}
</td>
<td>
{{ row.date }}
</td>
<td>
{{ row.user }}
</td>
<td>
{{ row.rating }}
</td>
</tr>
{% endfor %}
</table>
如果我可以按值排序,那就太好了,这样用户就可以按日期或评分排序结果
请您参考如下方法:
在您的 View 函数中执行此操作。
...
csv_dict = {rows[0]:rows[1] for rows in pre_reader}
args['csv_dict'] = csv_dict
...
然后您的模板中将有一个字典,您可以使用 regroup 标签重新排序。 https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#regroup
