6

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 无法识别的其他字符?

4

1 回答 1

9

看起来您需要删除您的testlist.0.lastedited和过滤器之间的空格。尝试类似:

{% extends 'base.html' %}
{% block content %}
{{testlist.0.name|safe}}
{% endblock %}

我猜这是你的问题,因为在文档中,他们没有任何空格,并且他们将模板解析为字符串或接近它的东西,所以空格会影响它。

模板示例

于 2012-07-01T16:59:17.250 回答