Вы нажали приобретение.
Вы хотите получить элемент / свойство / атрибут «07» папки «07».Но у этого последнего нет подобъекта с таким идентификатором.Таким образом, из-за приобретения существующая папка '07' запрашивает у своего родительского элемента, есть ли у нее подобъект с указанным идентификатором, и, конечно, папка '2011' имеет этот элемент, тот, в котором вы сидите '07'..
Это грубое объяснение того, как работает сбор данных.
Другой пример этого URL: http://plone.org/news/news/news/news/news/events
Папка 'events' на самом деле не жить в папке «новости».И всех этих папок «новостей» на самом деле нет, но есть по крайней мере одна папка «новостей», живущая в корне plone.org, и хотя у нее нет папки «событий», ее родитель (снова plone.org)) делает.
Здесь у вас есть несколько ссылок:
Если вы хотите сделатьуверен, что элемент / свойство / атрибут действительно является частью родительского элемента, который вы должны использовать aq_base
из Acquisition
:
from Acquisition import aq_base
plone = aq_base(self.portal.Plone)
s = aq_base(getattr(plone, 's'))
a = aq_base(getattr(s, 'a'))
year = aq_base(getattr(a, '2011'))
month = aq_base(getattr(year, '07'))
day = aq_base(getattr(month, '07'))
aq_base
убирает цепочку сбора данных из элемента, поэтому приобретение не будет использованочтобы получить его элементы.