Форум сайта python.su
Привет!
Подскажите такое. Как в странице ZPT проверить что переданный request-параметр есть целое, строка или список?
Средствами ZPT или Python ?
Офлайн
В зрт нема функції type, може якась інша подібна є. Найлегше мені здається то буде так зробити: написати пітонівську функцію, якій передати значення, а вона поверне тип, в окремому модулі, яку виклкати на сторінці. То буде виглядати так:
<div tal:define="xtype python:modules['Products.myProduct.utils'].xtype"> <span tal:content="python:xtype(request.val)"/> </div>
import types def xtype(val): t = type(val) if t == types.StringType: return "tstring" elif t == types.ListType: return "tlist" elif t == types.IntType: return "tinteger"
Отредактировано (Май 17, 2007 19:51:07)
Офлайн
Спасибо, это то что мне нужно.
Офлайн
Ше така штука, може не знаєш. В продукті в __init__.py треба додати таке:
from AccessControl import allow_module allow_module('Products.myProduct.utils')
Офлайн
Не получилось
на строке
import types ... t = type( X )
руководство
The Python interpreter has a number of functions built into it that are always available.
Офлайн
То якась фантастика, а ти allow_module додав? Якщо додав і не працює тоді замість
t = type(val)
t = val.__class__
Отредактировано (Май 17, 2007 19:14:05)
Офлайн
Что за allow_module ?
А что я не могу просто в скрипте питона вызвать type( чтоб получить тип переменной в реквесте?
на строку
t = val.__class__
Офлайн
Я тільки що перевірив - все працює. Ще раз все по порядку:
1 відкрий __init__.py і додай
from AccessControl import allow_module allow_module('Products.myProduct.utils')
import types def xtype(val): t = type(val) if t == types.StringType: return "tstring" elif t == types.ListType: return "tlist" elif t == types.IntType: return "tinteger" [code]4 запусти zope 5 створи таку сторінку: [code=xml] <div define="xtype python:modules['Products.myProduct.utils'].xtype"> <span tal:content="python:xtype(repr(request))"/> </div>[/code] 6 Натисни test. Виведе tstring
Офлайн
tabajara, спасибо я обязательно все это попробую .
Но зачем все так сложно? У меня нет никакого продукта, если имеются в виду обьекты в /Control_Panel/Products.
Я что не могу в питон-скрипте вызвать t = type(val) ?
Офлайн
NilovSergeа я думав то продукт ))))))
У меня нет никакого продукта, если имеются в виду обьекты в /Control_Panel/Products.
NilovSergeнє,не можеш (((
Я что не могу в питон-скрипте вызвать t = type(val) ?
Отредактировано (Май 17, 2007 21:57:47)
Офлайн