FlexFAQ

Активный раздел: Когда я вызываю Документ или Метод через <dtml-var "doc"> то все теги исчезают, а в некоторых случаях вообще просто печатаются на странице без обработки браузером. Что это?

Вопрос: Когда я вызываю Документ или Метод через <dtml-var "doc"> то все теги исчезают, а в некоторых случаях вообще просто печатаются на странице без обработки браузером. Что это?

Ответ: Для того, чтобы DTML-объект отрендерился в HTML, его надо вызвать! Если ты добираешься до объекта по URL, то его автоматически вызывает ZPublisher. Если ты DTML-объект используешь в виде <dtml-var doc> - то его автоматически вызовет Zope. Но если ты DTML-объект используешь в виде <dtml-var "doc"> - то то, что внутри кавычек - это чистый Питон. И никакого автоматического вызова не происходит! Значит, надо этот doc вызвать!!! <dtml-var "doc(_.None, _)"> - при вызове передаются параметры client (в данном случае None, иногда бывает this()) и namespace.