Использование django-компрессора с render_block от sekizai_tags

Я хотел бы иметь возможность

  1. Скомпилируйте все js/css в отдельные уменьшенные файлы, вот что django-compressor делает.
  2. Уметь добавлять файлы js/css из включенных и унаследованных шаблонов.

Когда я пытаюсь:

{% compress css file %}
{% render_block "css" %}
{% endcompress %}

Я получаю ошибку: Invalid block tag: 'endcompress'

Но я думаю, что основная причина - в документах sekizai:

{% render_block %} теги не должны быть помещены в блок тегов шаблона (тег шаблона, который имеет конечный тег, такой как {% block %}...{% endblock %} или же {% if %}...{% endif %}).

Я сделал что-то не так или есть другой способ?

1 ответ

Кажется, django-компрессор явно обеспечивает это взаимодействие, но не путем render_block внутри compress/endcompress:

{% load sekizai_tags %}
{% render_block "<js/css>" postprocessor "compressor.contrib.sekizai.compress" %}

На самом деле, {% compress %} тег здесь просто не используется.

<head>
...
<!-- css -->
{% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
{% block css %}{% endblock %}
<!-- end js -->
...
</head>

... then in another template ...

{% block css %}
{% addtoblock "css" %}
    {{ form.media.css }}
    <link rel="stylesheet" type="text/css" href="..." />
{% endaddtoblock %}
{% endblock %}

я использую block css просто ради того, чтобы любой блок поставить addtoblock в, иначе это не будет работать (если это не находится в том же файле шаблона):

Если {% addtoblock %} тег используется в расширяемом шаблоне, теги должны быть размещены внутри {% block %}...{% endblock %} теги.

Другие вопросы по тегам