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

08-25 18:35
查看更多