Доки и гугл не помогают.
Хочу сделать хитрый финт:
— если есть endblock, то логика типа parse until — то есть буду брать содержимое между ними и с ним работать,
— если конца нет — буду иначе.
Для этого на шаге компиляции запускаю парсер, если он не находит конца, то вызывает ошибку:
try:
nodelist = parser.parse(('endsome',))
parser.delete_first_token()
return SomeNode(nodelist)
except TemplateSyntaxError as e:
if 'endsome' in str(e):
return SomeNode()
в темплейте:
{% some %}
Все идет нормально: он парсит, не находит закрывашку, идет по пути экспешона, и даже вызывает __init__ в SomeNode()
Но после — поднимает ошибку:
Unclosed tag on line 10: 'some'. Looking for one of: endblock.
Ошибка поднимается из 482-й строки:
https://github.com/django/django/blob/stable/3.0.x/django/template/base.py#L482
Можно его как-то остановить, мол Успокойся, нет там конца? Можно вообще такой финт сделать? Чего я не понимаю?
На жаваскрипте не?
Обсуждают сегодня