Коллеги! На джанго программирую уже лет 5, но как бэкендщик в основном. Фронт приходится тоже иногда делать и такой вопрос меня тревожит: как встроить сторонние аппы и/или пакеты в свой дизайн? Или свою аппу-пакет как сделать, что бы был реюз?
Когда разабатываем аппу в её локальной дирекории templates наследуем её шаблоны от base.html - так мы подцепим внешнее обрамление в новом проекте. Плюс соглашения по названиям блоков - content, menu, title, etc.
Но как использовать аппу-пакет в новых проектах? У неё в шаблонах, предположим прописаны CSS от bootstrap, а в новом проекте - уже индивидуальный дизайн.
Можно конечно скопировать шаблоны из аппы-пакета в глобальную диру templates нового проекта и поизменять в соответствии с дизайном нового проекта, но поддерживаемость страдает - когда мы доработаем пакет, нам придется допиливать все использующие его проекты... Для форм можно заэкстендить формы аппы и прописать widgets. Это кривовато на мой вкус, но это "бородавка" джанги - смешение иногда HTML и python.
С другой стороны можно в шаблонах пакета все CSS упоминания обернуть блоками, а в новом проекте заменить, но это тихий ужас - 100500 блоков с длинными названиями, иначе не поймешь что за блок и что он заменяет. Я попробовал однажды - фу.
Как вы это решаете? я не дочитал документацию?
Заранее спасибо. Да, у меня Jinja2 в качестве движка шаблонов, django с 1.5 до 1.9
Updated 7 Feb. 2016, 22:45 by suguby.