> Olá pessoal, > Olá, Luiz. [snip] > Quando coloco para puxar uma pasta que tem como ID números e está abaixo da > pasta "EXEMPLO", me da erro no código, por exemplo: > > pasta = context.teste.008 > -ERRO: > "invalid syntax (Script (Python), line 1)" > Veja que, de fato, esse não é um código Python (PythonScript do Zope, que seja) válido, o identificador deveria começar com uma letra, como você deve ter percebido. Talvez haja uma forma mais elegante, mas essa aqui funciona:
pasta = context.teste subpasta = pasta.getFolderContents({'id':'008'}) 'subpasta' será um objeto tipo 'brain' resultante de consulta no catálogo, assim, para levantar o objeto, de fato, do ZODB, faça: obj008 = subpasta[0].getObject() [snip] > A proposito pessoal, com a variável abaixo, só consigo pegar o valor que > está em CATALOG, mas gostaria de pegar o valor da pasta origem de onde > reside o objeto, por exemplo: > ----------------------------------------------------------- > pa = context.portal_url.getPortalPath()+'/pasta1'; > obj = context.portal_url.portal_catalog(Type = "Page", > path = pa) > Você não precisa chamar 'portal_catalog' a partir de 'portal_url'. Isso só funcionou por conta da Aquisição [1]. Seu código poderia ser desse jeito: pa = context.portal_url.getPortalPath()+'/pasta1'; obj = context.portal_catalog(Type = "Page", path = pa) > for objeto in obj: > print objeto.aq_parent > return printed > ----------------------------------------------------------- > -SAÍDA: > <CatalogTool at portal_catalog> > Isso está correto. Quando você faz uma consulta no catálogo, os valores retornados, por motivos de performance, são objetos proxies (o tal 'brain' ao qual me referi anteriormente). O pai desses objetos são, de fato, o CatalogTool. Se você deseja acessar o objeto real a partir do 'brain', existe o método 'getObject'. Tente reescrever seu código dessa forma: for objeto in obj: print objeto.getObject().aq_parent return printed Espero que ajude. [1] http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/Acquisition.stx -- André FS