2017-08-02 44 views
0

我傳遞到HTML的Django模板的字典:在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模板我需要打印一些字典中每行的值。如果在一個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]' 

有人可以給我一個想法來解決這個問題嗎?

+0

[添加自定義模板過濾器(https://stackoverflow.com/questions/41932634/how-to-split-the-string-in-django-template),這是非常簡單,你可以稍後使用它。 –

回答

0

你不能只是調用任意邏輯在Django ...這可能是更多的後端工作的,如果你只想要零,但我認爲你可以使用first過濾

{{ my_var.split | first }} 
+0

添加|首先它不起作用。對於第二,第三等價值? –

+0

您只是在您的問題中詢問第一個值 –

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

哪一個字典必須傳遞給渲染器? –

+0

新字典d2。熟的一個。 – danihp