Russian-speaking Python & Zope User Group

Я точно знаю, что id объекта = XXX, но сравнение выдает flase. В чем дело?


В корень! |  Python |  Zope Новости

Python
Zope
     Архитектура
     Введения
     Вопросы
     Что и как
     Документация
     Новости
     Публикации
     Компоненты
Новости
Copyright
Ответственность  

FlexFAQ

Активный раздел: Я точно знаю, что id объекта = XXX, но сравнение <dtml-if "id == 'XXX'"> выдает false. В чем дело?

Вопрос: Я точно знаю, что id объекта = XXX, но сравнение <dtml-if "id == 'XXX'"> выдает false. В чем дело?

Ответ: Проблема заключается в том, что иногда id не строка, а функция, которую еще надо вызвать. То есть в Вашем случае это будет <dtml-if "id() == 'XXX'">. Для того, чтобы не разбираться каждый раз отдельно, является ли id строкой или функцией, Вы можете заставить Zope выдавать строку или вызывать функцию: <dtml-if "_['id'] == 'XXX'">. Конструкция _['id'] автоматически рендерит объект, имя которого передано (в даном случае id). Это эквивалентно _.getitem('id', 1). Примечание. _.getitem('id', 0) вернет сам объект, без его насильственного вызова. Примечание 2. В Zope 2.3 будет введен интерфейс getId().


Zope
Plomino, build your business applications in Plone
RelStorage 2.1.1 Released
Silva Math Released
RelStorage 2.1.0 Released
Z3ext 1.0.0 Released
Powered by Zope
Copyright © 2000-2024, Russian-speaking Python & Zope User Group Ответственность