TemplateSyntaxError всякий раз, когда я пытаюсь использовать фильтр в своих шаблонах
testlist-это просто список объектов. Например
testlist.0.name
просто "Test3"
у меня есть файл Temp.HTML-код
{% extends 'base.html' %}
{% block content %}
{{testlist.0.name | safe}}
{% endblock %}
это все, что есть в temp.html файл и база.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 не распознает?
1 ответов
похоже, вам нужно удалить пробел между testlist.0.lastedited
и фильтра. Попробуйте что-то вроде:
{% extends 'base.html' %}
{% block content %}
{{testlist.0.name|safe}}
{% endblock %}
Я предполагаю, что это ваша проблема, так как в документах у них нет пробелов, и они анализируют шаблон как строку или что-то близкое к ней, поэтому пробелы могут повлиять на него.