Django: как включить CSS один раз внутри "включенного" шаблона
В Django шаблоны можно либо {% extend %}, либо {% include %}. У меня есть шаблон, который уже расширяет другой шаблон, а затем в шаблонах есть различные необязательные биты кода, которые включаются в расширенный шаблон. Эти включенные файлы можно назвать "компонентами", которые добавляются к различным шаблонам.
Теперь один из этих включаемых шаблонов требует внешнего CSS файла. Хотя можно было бы добавить включаемый файл во все шаблоны, которые его включают, я думаю, что с точки зрения логики логичнее, чтобы фрагмент кода инжектировал свои собственные зависимости автоматически, иначе мягкие зависимости в далеких файлах могут быть нарушены. Т.е. включаемый шаблон должен объявить свои потребности в CSS файле.
Если я напишу собственный тег шаблона для достижения этой цели, насколько я понимаю, к тому времени, когда он дойдет до этого тега шаблона во включенном шаблоне, он не сможет вернуться в шапку документа и добавить строку в рендеринг шапки, чтобы добавить тег <style>. Так как же этого можно добиться?
Можно добавить тег style в компонент, но тогда тег style будет дублироваться каждый раз, когда есть экземпляр компонента, что не очень хорошо.