Пожалуйста, всегда добавляйте свои следы, чтобы мы могли помочь вам лучше. Существует также официальный форум community.plone.org, где больше людей могут вам помочь.
Я рекомендую вам использовать plone.api для поиска ваших объектов, это немного проще и хорошо продумано.
примерно так:
from plone import api
color_brains = api.content.find(context=api.content.get(path='/madb-entw/it/colourcontainer'), depth=1, portal_type='Color')
# no need to do getOject() here, get the id/title directly from the catalog brain
colors = [(color.id, color.Title) for color in color_brains]
Одно примечание к вашему запросу:
colourlist = self.context.portal_catalog (path = { "query": "/ madb-entw / it / colourcontainer", "depth": 1})
Путь должен быть абсолютным, что означает, что он включает идентификатор сайта Plone, и он может быть другим. на другом сайте Plone. Таким образом, абсолютный путь здесь не очень хорошая идея, лучше возьмите объект портала и пройдитесь по своему относительному пути оттуда. Если madb-entw - это идентификатор вашего сайта Plone:
portal.restrictedTraverse('it/colourcontainer')
или лучше, как указано выше, используйте plone.api.content.get (path = '/ it / colourcontainer'), что проще и проще.