#django #django-templates
#django #django-templates
Вопрос:
Вот сообщение об ошибке, заполняющее мою страницу, с сопутствующей проблемой кода:
TemplateSyntaxError в / home
Недопустимый тег блока: ‘endblock’, ожидаемый ‘endif’
Метод запроса: ПОЛУЧИТЬ
URL-адрес запроса: http://localhost:8000/home
Версия Django: 1.3.1
Тип исключения: TemplateSyntaxError
Значение исключения: недопустимый тег блока: ‘endblock’, ожидаемый ‘endif’
Код:
{% extends "profile/base_with_classes.html" %}
{% block username %}
{% if user == None %}
Nobody
{% else %}
{% if user.is_authenticated %}
{{ user.username }}
{% else %}
Unauthenticated User
{% endif %}
(% endif %}
{% endblock username %} <==== Issue is here
Я не понимаю. Это находится в верхней части шаблона.
Ответ №1:
В последнем endif (
вместо {
Комментарии:
1. 1 хороший улов. Это определенно проблема. Ошибка указывает на то, что
{% endblock %}
вызывается до того, как оператор if закрывается{% endif %}
. Это так, потому{% endif %}
что оно искажено.
Ответ №2:
Ну, это не только проблема; {% endblock %}
для тега на самом деле не требуется имя блока для закрытия. Попробуйте поэкспериментировать с различными случаями при входе в систему, а когда нет
Комментарии:
1. возможно, оно не требуется, но включение имени не является проблемой, и это, безусловно, делает файл более читаемым, особенно в случае вложенных блоков или очень длинных блоков.