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无法识别的其他字符吗?
最佳答案
看来您需要删除testlist.0.lastedited
和过滤器之间的空格。尝试类似:
{% extends 'base.html' %}
{% block content %}
{{testlist.0.name|safe}}
{% endblock %}
我猜这是您的问题,因为在文档中,它们没有任何空格,并且将模板解析为字符串或接近字符串的内容,因此空格会影响模板。
Template example