Шаблоны Django/sekizai/classytags выдают ошибку о теге endif

Ошибка: Неверный тег блока: 'endif'.

Сначала о том, о чем ошибка - я завернул весь шаблон в условие:

{% if something %}
{% else %}
{% load cms_tags sekizai_tags menu_tags %}
{% render_block "css" %}
{% render_block "js" %}
{% endif %}

И это заставляет django выдавать ошибку:

TemplateSyntaxError at /mypage/ Недопустимый тег блока: 'endif'

Но проблема явно с classytags/sekizai как

{% if something %}
{% else %}
<h1>Hello world</h1>
{% endif %}

рендерит без ошибок.

Кто-нибудь знает, как я могу избежать этой ошибки или исправить ее?

Теперь вторая часть - чего я пытаюсь добиться, так это - я хочу отображать несколько другую HTML-страницу, когда запрос является запросом ajax. Условие должно быть, если request.is_ajax. Но если изменить на, чтобы более четко проиллюстрировать мою точку зрения. Я использую django-cms, и он позволяет вам устанавливать только один шаблон на каждой странице. И это не было бы проблемой, если бы я мог обслуживать один и тот же контент, но с другим окружающим html в случае запросов ajax, но, к сожалению, рендеринг не работает...


person Odif Yltsaeb    schedule 14.01.2014    source источник


Ответы (1)


Ну, в документации довольно ясно, что использование {% render _block . .. %} внутри другого блока тегов шаблона не допускается.

Не могли бы вы просто сделать это, если условие внутри визуализированного блока?

редактировать: только что заметил, что вопрос был не таким уж и недавним. Ну что ж. Интересно, как вы решили свою проблему...

person phenxd    schedule 20.02.2014
comment
Я этого не сделал. Ты абсолютно прав. Я пропустил эту часть документации. И я не решил свою проблему. Это очень-очень плохая особенность classytags, и я серьезно рассматриваю возможность никогда больше не использовать django cms по этой причине. - person Odif Yltsaeb; 21.02.2014