testlist只是一个对象列表。例如
testlist.0.name
只是“Test3”
我有一个文件temp.html
{% extends 'base.html' %}
{% block content %}
{{testlist.0.name | safe}}
{% endblock %}
这就是temp.html文件中的所有内容,base.html与使用它的所有其他html文件一起正常工作
temp.html给了我
TemplateSyntaxError at /mytests/
Could not parse the remainder: ' | safe' from 'testlist.0.name | safe'
Request Method: GET
Request URL: http://127.0.0.1:8000/mytests/
Django Version: 1.4
Exception Type: TemplateSyntaxError
Exception Value:
Could not parse the remainder: ' | safe' from 'testlist.0.name | safe'
当我将其更改为:
{% extends 'base.html' %}
{% block content %}
{{testlist.0.lastedited |date:"SHORT_DATE_FORMAT" }}
{% endblock %}
它给了我
TemplateSyntaxError at /mytests/
could not parse some characters: testlist.0.lastedited| ||date:"SHORT_DATE_FORMAT"
Request Method: GET
Request URL: http://127.0.0.1:8000/mytests/
Django Version: 1.4
Exception Type: TemplateSyntaxError
Exception Value:
Could not parse some characters: testlist.0.lastedited| ||date:"SHORT_DATE_FORMAT"
你明白了。看来我只是不能在我的django模板中使用任何过滤器。我尝试了其他过滤器,仍然得到相同的东西。 我错过了一些能够使用竖线字符的选项吗?是不是“|”我的macbook pro上的键不是竖线字符,而是django无法识别的其他字符?
答案 0 :(得分:9)
您似乎需要删除testlist.0.lastedited
和过滤器之间的空白区域。尝试类似:
{% extends 'base.html' %}
{% block content %}
{{testlist.0.name|safe}}
{% endblock %}
我猜这是你的问题,因为在文档中,它们没有任何空格,并且它们将模板解析为字符串或接近它的东西,因此空格可以影响它。