在django模板中使用split

时间:2017-08-02 13:35:53

标签: python django

我将字典传递给html django模板:

return render_to_response('showdata.html', context_instance=RequestContext(request, {'dictdati': context} ))

这本词典有这样的结构:

{0: 'TO;DEC;1;2012/02/28 15:39:06.000;TO;1234;SI;DI;1234;TO;1\n', 1: 'TO;DEC;1;2012/02/28 15:39:06.000;TO;567;SI;DI;567;TO;1\n'}

在html模板中,我需要在dict的每一行中打印一些值。如果在python文件中我使用

for key,val in dictdati.items():
    print val.split(';')[0]

它正确地打印第一个值(TO),但是在html模板中

{% for key,val in dictdati.items %}
  {{ val.split[0] }}
{% endfor %}

在浏览器中我收到错误:

TemplateSyntaxError at /getdata/
Could not parse the remainder: '[0]' from 'val.split[0]'

有人能给我一个解决这个问题的想法吗?

2 个答案:

答案 0 :(得分:0)

你不能在django中调用任意逻辑...如果你只需要0,我可能会使用first过滤器

这可能更适合后端工作
{{ my_var.split | first }}

答案 1 :(得分:0)

在发送到模板之前,只需烹调数据:

#cooking data on view:
d2 = {  k:v.split(";") for k,v in d.items() }

#in template:
{% for key,val in d2.items %}
  {{ val|first }}
{% endfor %}