Форум сайта python.su
Всем привет. Хочу разобраться с наследованием шаблонов. Начал с Myghty. В нем есть флаг наследования, всё работает, но возникает проблема привязки шаблона к контролу, как в ASP .Net например. Таких флагов не нашел. А если без привязки то и смысл отпадает их использовать так. Подскажите, может я не с того конца потянул?
Офлайн
Привязки контроллера к шаблону нет и не будет. Шаблоны – это push, а не pull. Это контроллер говорит, какой шаблон рендерить, а не шаблон говорит каким контроллером будет обрабатываться.
Я прямо скажу, с ASP.NET не знаком, поэтому для меня фраза “без привязки то и смысл отпадает их использовать так” не понятна. Наследование шаблонов нужно для реиспользования шаблонов. Чтобы не писать повторяющиеся элементы по пять раз.
P.S. Myghty/Mako вполне себе generic templates, я вон Mako в Twisted чуток использовал, а там контроллера в понимании Pylons нет.
Офлайн
Объясняю как в ASP.NET. Там нет шаблонов, там есть просто отделение логики и дизайна, очень мощное. У страницы дизайна есть свойства всякие, наследования и прочие. И обычна страница привязана к классу. Она может быть и не привязана, но открывается именно страница, а не класс. Есть наследование, просто вставляя другие страницы, как контроллы, в текущую, она получается вложенной и отображаться будет соответственно. В принципе я нашел простое решение для pylons. В начале шаблона импортировать модуль с логикой и всё, в принципе устраивает.
Отредактировано (Июнь 5, 2007 10:09:04)
Офлайн
В принципе я нашел простое решение для pylons. В начале шаблона импортировать модуль с логикой и всё, в принципе устраивает.Ужс. Не следует переносить архитектурные решения ASP.NET на Pylons. Это, наверно, получится, но будет не эффективно и криво.
Отредактировано (Июнь 6, 2007 09:20:26)
Офлайн
Если бы я знал как наследовать.. Есть же autohandler. Все другие шаблоны являются к нему дочерним автоматически. Я просто хочу создать подобие autohandler, но уже с логикой. Я понимаю что не правельно делаю, залазя в шаблон с кодом, но как по другому я не знаю.
Офлайн