Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Обворачивающий шаблон, есть ли что-нибудь похожее? [RSS Feed]

#1 Фев. 26, 2009 22:02:37

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

Есть ли в джанго такая фича для шаблонной системы:
например в шаблоне участок кода чтобы можно было обернуть в некий тег, а его описание было в отдельном месте с указаниимем метки того что он оборачивает.

т.е например:

сам обворачивающий тег будет таким:
cover:

<div id="cover_div1">
<div id="cover_div2">
{covered}
</div>
</div>
потом где-то в шаблоне:

{cover}
“тут разный хтмл код, вызовы тегов и тд.”
{end_cover}

в результате получается:
<div id="cover_div1">
<div id="cover_div2">
"тут разный хтмл код, вызовы тегов и тд."
</div>
</div>
с помощью инклудов с двух сторон что-то не нравится делать так как шаблон на два файла разбивается не очень красиво..



Отредактировано (Фев. 26, 2009 22:55:54)

Офлайн

#2 Фев. 26, 2009 22:25:15

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

Похоже на наследование. Но все равно не понятна до конца суть задачи.



Офлайн

#3 Фев. 26, 2009 22:36:59

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

ну как вариант можно реализовать через наследование, но только частные случаи,причем нада плодить каждый раз новый шаблон.

Задача помоему вполне очень даже частая в плане верстки, когда нужно оборачивать например некоторые сообщения html кодом и этот обвертывающий код из раза в раз повторяется, поэтому хочется его держать в одном месте для быстрого глобального изменения. Наследование тут как то слишком тяжеловато будет..к тому же если этот код например повторяется несколько раз в одном шаблоне тут даже не понятно как делать с наследованием..

это больше с декораторами даже аналогию можно провести чем с наследованием..



Офлайн

#4 Фев. 26, 2009 22:39:23

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

Тогда комбинация наследования и include.



Офлайн

#5 Фев. 26, 2009 22:49:59

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

что то не понял как это тут комбинировать и зачем?) если уж взяли инклуд тогда просто им и можно оборачивать с двух сторон и все, зачем тут наследование? хотелось бы конечно более приятного использования типа как декоратора, без извращений..



Офлайн

#6 Фев. 26, 2009 22:58:40

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

Evg
хотелось бы конечно более приятного использования типа как декоратора, без извращений..
Не понимаю о каких вы декораторах говорите, если в шаблонах в принципе нет декораторов.

Декоратором можно обернуть кастомный тег. Но тег это в любом случае уже ответставенность не верстки - что неудобно.

Evg
что то не понял как это тут комбинировать и зачем?) если уж взяли инклуд тогда просто им и можно оборачивать с двух сторон и все, зачем тут наследование?
Так красивей получается.

В базовам шаблоне вы как раз пишете:
<cover_div1>
<cover_div2>
{% block covered %}
{% endblock %}
</div>
</div>
потом вы свободно можете от него наследоваться, переопределяя этот блок. Ну и с помощью инклюдов включать этих наследников в основной шаблон где угодно и сколько угодно раз.



Офлайн

#7 Фев. 26, 2009 23:19:22

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

да определенно красивее чем с инклудами и файл не дробится, не нравится только то что нужно много движений с файлами совершать, вот если бы это было в одном фрагменте и читалось бы проще, еще логика заключенная в эти блоки может быть важнее\сложнее чем сами эти обертки и из-за этого перетягивать важную в данном контексте логику в другое место и наследоваться от менее важной информации..тоже как то не хочется - проще наклейку наклеить на стену, чем стену тащить к наклейке :)

декоратор это я аналогию провел, на что больше похоже.



Офлайн

#8 Фев. 27, 2009 11:39:56

StackOverflow
От:
Зарегистрирован: 2009-02-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

я конечно начинающий, но помоему вашу задачу может решить подобный кастомный тег

http://jjinux.blogspot.com/2006/02/python-django-custom-tags.html



Офлайн

#9 Фев. 27, 2009 15:34:49

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

у тега недастаток в данном случае в том что ему нужно предавать то что он обворачивает как параметры, а это не всегда удобно, куда проще разметить границы обворачиваемой области в шаблоне.



Офлайн

#10 Окт. 21, 2009 14:45:04

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Обворачивающий шаблон, есть ли что-нибудь похожее?

тоже столкнулся с похожей задачей. Никто не придумал более красивое решение?



Офлайн

  • Начало
  • » Django
  • » Обворачивающий шаблон, есть ли что-нибудь похожее?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version