В моем проекте мне нужно по-разному относиться к требованиям CSS в зависимости от нескольких параметров. Таким образом, мне нужен дополнительный уровень абстракции по сравнению с доступными статическими системами управления.
В моих шаблонах я хотел бы иметь возможность регистрировать требования CSS (и JS) с помощью тега шаблона, который будет выглядеть как {% register_css 'myfile.css' %}
. Этот подход работает как шарм.
Тем не менее, есть еще одна проблема с этим подходом: тег работает отлично при вставке в блок, но никогда не вызывается при вставке поверх дочернего шаблона. Определение тега:
@register.simple_tag(takes_context = True)
def register_css(context, *args):
context['static_registry'].register_css(streamlet)
return ''
Это мой тестовый шаблон:
{% extends main_skelton %}
{% load static_registry %}
{% register_css 'base' %}
{% block title %}Welcome{% endblock %}
{% block content %}
{% register_css 'home' %}
<p>Some content here</p>
{% endblock %}
В этом шаблоне регистрируется «домашний» css, но не «базовый». Как я могу заставить оба работать?
Спасибо!