Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 30, 2009 01:17:24

__serg__
От:
Зарегистрирован: 2009-04-30
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

принцип работы с шаблонами

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

я попробовал сделать наоборот, тоесть передал в главный шаблон, в параметрах, хтмл код
например у нас два шаблона : body index
во вью два метода: body - вызывает шаблон body, index - вызывает шаблон index
я запрашиваю метод index и в нем вызываю body и хтмл блок с body передаю в index через параметр

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

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

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

если бы у нас новости все однородные были, у нас бы был шаблон “новости” и туда мы массив с данными отдали и в цикле в шаблоне “новости” хтмл структуру ленты построили ,но у нас не однородные новости (хтмл конкретной новости зависит от типа новости), тогда в шаблоне “новости” в цикле обработки данных о новостях, нужно инклюдить шаблон в зависимости от конкретного типа новости, так что ли?



Офлайн

#2 Апрель 30, 2009 02:24:02

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

принцип работы с шаблонами

Все не так.
Для этого есть кастомные темплейт-таги. В шаблон передаете новость и ее тип, темплейт таг заботится о ее оформлении - берёт соответствующий шаблон новости и использует его для отображения.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version