Форум сайта python.su
Всем привет!
1) Мне нужно вызвать ZSQL Method из tal:repeat с передаваемым параметром Как это можно сделать?
Все попытки написать
<span class=“Row” tal:repeat=“LogonItem container/SQL/RetrieveEmployeeLogonStatus(s_pin_code)” tal:omit-tag=“”>
валились где RetrieveEmployeeLogonStatus - ZSQL Method с параметром s_pin_code
До этого я писал вызовы ZSQL Method но там параметры именами совпадали с параметрами request-а и так и работало
В данном случае s_pin_code это не параметр request-а
2) А есть ли возможность для tal:repeat прерывать цикл при необходимости Такой break?
На самом деле мне надо обработать RetrieveEmployeeLogonStatus(s_pin_code) который возвращает много строк и вывести только первую строку
У dtml есть <dtml-call а у tal-?
3) А как из python-скрипта выбрать данные из MySql базы используя параметры подключения обьекта Z MySQL Database Connection?
Если можно ссылку на пример
Офлайн
1) используй python выражения:
<span class=“Row” tal:repeat=“LogonItem python:container.SQL.RetrieveEmployeeLogonStatus(s_pin_code)” tal:omit-tag=“”>
2) опять-же используй python выражения:
<p tal:content="python:container.SQL.RetrieveEmployeeLogonStatus(s_pin_code)“>
или
<span class=”Row“ tal:repeat=”LogonItem python:container.SQL.RetrieveEmployeeLogonStatus(s_pin_code)“ tal:omit-tag=”“>
или
<div tal:define=”items python:container.SQL.RetrieveEmployeeLogonStatus(s_pin_code);
items python:items“>
<span class=”Row“ tal:repeat=”LogonItem items“ tal:omit-tag=”">
последним вариантом я пользуюсь чаще. Предварительно определяю все переменные, которые будут использоваться в шаблоне и не перегружаю шаблон длинными определениями.
3) А чем тебя ZSQL Method не устраивает? Если динамически создаешь SQL, то можно юзать DTML.
Офлайн
Спасибо albert с 1) и 2) разобрался
Насчет 3) просто надо написать такую процедуру где нужно сначала залезть в базу и считать данные и в зависимости от считанных данных
выполнить одно из действий… К тому же эта процедура будет вызываться из разных мест. Наверно Python-функцией удобней б было…
Можно такое сделать?
Офлайн
NilovSergeЕсли набор действий ограничен, то что мешает сделать несколько методов?
в зависимости от считанных данных
выполнить одно из действий…
NilovSergeА в чем проблема?
К тому же эта процедура будет вызываться из разных мест.
NilovSergeнет, не удобней.
Наверно Python-функцией удобней б было…
NilovSergeМожно, но придется делать External Method или отдельный продукт, что слегка неудобно
Можно такое сделать?
Офлайн