В моем проекте мне нужно рассматривать требования CSS по-разному в зависимости от нескольких параметров. Таким образом, мне нужен дополнительный уровень абстракции по сравнению с доступными статическими системами управления.Как создать пользовательский тег шаблона Django, работающий за пределами блока?
В моих шаблонах я хотел был бы иметь возможность зарегистрировать требования 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 регистрируется, но не «база» один. Как я могу заставить обе работать?
Спасибо!
Не самый захватывающий способ сделать это ... Но это работает. Благодарю. – Pierre