Форум сайта python.su
Есть ли в джанго такая фича для шаблонной системы:
например в шаблоне участок кода чтобы можно было обернуть в некий тег, а его описание было в отдельном месте с указаниимем метки того что он оборачивает.
т.е например:
сам обворачивающий тег будет таким:
cover:
<div id="cover_div1">
<div id="cover_div2">
{covered}
</div>
</div>
<div id="cover_div1">
<div id="cover_div2">
"тут разный хтмл код, вызовы тегов и тд."
</div>
</div>
Отредактировано (Фев. 26, 2009 22:55:54)
Офлайн
Похоже на наследование. Но все равно не понятна до конца суть задачи.
Офлайн
ну как вариант можно реализовать через наследование, но только частные случаи,причем нада плодить каждый раз новый шаблон.
Задача помоему вполне очень даже частая в плане верстки, когда нужно оборачивать например некоторые сообщения html кодом и этот обвертывающий код из раза в раз повторяется, поэтому хочется его держать в одном месте для быстрого глобального изменения. Наследование тут как то слишком тяжеловато будет..к тому же если этот код например повторяется несколько раз в одном шаблоне тут даже не понятно как делать с наследованием..
это больше с декораторами даже аналогию можно провести чем с наследованием..
Офлайн
Тогда комбинация наследования и include.
Офлайн
что то не понял как это тут комбинировать и зачем?) если уж взяли инклуд тогда просто им и можно оборачивать с двух сторон и все, зачем тут наследование? хотелось бы конечно более приятного использования типа как декоратора, без извращений..
Офлайн
EvgНе понимаю о каких вы декораторах говорите, если в шаблонах в принципе нет декораторов.
хотелось бы конечно более приятного использования типа как декоратора, без извращений..
EvgТак красивей получается.
что то не понял как это тут комбинировать и зачем?) если уж взяли инклуд тогда просто им и можно оборачивать с двух сторон и все, зачем тут наследование?
<cover_div1>
<cover_div2>
{% block covered %}
{% endblock %}
</div>
</div>
Офлайн
да определенно красивее чем с инклудами и файл не дробится, не нравится только то что нужно много движений с файлами совершать, вот если бы это было в одном фрагменте и читалось бы проще, еще логика заключенная в эти блоки может быть важнее\сложнее чем сами эти обертки и из-за этого перетягивать важную в данном контексте логику в другое место и наследоваться от менее важной информации..тоже как то не хочется - проще наклейку наклеить на стену, чем стену тащить к наклейке :)
декоратор это я аналогию провел, на что больше похоже.
Офлайн
я конечно начинающий, но помоему вашу задачу может решить подобный кастомный тег
http://jjinux.blogspot.com/2006/02/python-django-custom-tags.html
Офлайн
у тега недастаток в данном случае в том что ему нужно предавать то что он обворачивает как параметры, а это не всегда удобно, куда проще разметить границы обворачиваемой области в шаблоне.
Офлайн
тоже столкнулся с похожей задачей. Никто не придумал более красивое решение?
Офлайн