Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Март 9, 2007 16:43:28

NilovSerge
От:
Зарегистрирован: 2007-02-15
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

ZSQL Method с параметром и break в tal:repeat...

Всем привет!
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?
Если можно ссылку на пример



Офлайн

#2 Март 12, 2007 08:43:27

albert
От:
Зарегистрирован: 2006-09-15
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

ZSQL Method с параметром и break в tal:repeat...

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.



Офлайн

#3 Март 12, 2007 18:29:03

NilovSerge
От:
Зарегистрирован: 2007-02-15
Сообщения: 83
Репутация: +  0  -
Профиль   Отправить e-mail  

ZSQL Method с параметром и break в tal:repeat...

Спасибо albert с 1) и 2) разобрался
Насчет 3) просто надо написать такую процедуру где нужно сначала залезть в базу и считать данные и в зависимости от считанных данных
выполнить одно из действий… К тому же эта процедура будет вызываться из разных мест. Наверно Python-функцией удобней б было…
Можно такое сделать?



Офлайн

#4 Март 13, 2007 15:49:24

albert
От:
Зарегистрирован: 2006-09-15
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

ZSQL Method с параметром и break в tal:repeat...

NilovSerge
в зависимости от считанных данных
выполнить одно из действий…
Если набор действий ограничен, то что мешает сделать несколько методов?

NilovSerge
К тому же эта процедура будет вызываться из разных мест.
А в чем проблема?

NilovSerge
Наверно Python-функцией удобней б было…
нет, не удобней.

NilovSerge
Можно такое сделать?
Можно, но придется делать External Method или отдельный продукт, что слегка неудобно



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version