2010/3/13 Adam Victor Nazareth Brandizzi <brandi...@gmail.com> > 2010/3/12 Luciano Pacheco <lucm...@gmail.com> > > > > Olá Adam, > > Na verdade o seu paralelo não faz sentido no ZODB, pois o ZODB é sem > schema (estrutura das tabelas). > > O ZODB é orientado a objetos tem um objeto App na raiz e todos os objetos > dentro desse objeto App. > > Eu sei, o que eu quis dizer é que eu quero saber onde estarão os > objetos com as informações que preciso :>) > > Vc quer fazer buscas é isso ?
Você pode usar o portal_catalog para fazer buscas e achar seus objetos. Entre no modo debug e faça: #! -*- coding: UTF-8 -*- import transaction from zope.app.component.hooks import setHooks, setSite from Testing.makerequest import makerequest from AccessControl.SecurityManagement import newSecurityManager # algumas coisas dependem do request app = makerequest(app) portal = 'Plone' site = app[portal] # alguns produtos me davam erros bizarros sem essa linha (por exemplo o FSS) setSite(site) # Ate este momento estamos como usuario anonimo. # usando o newSecurityManager nos damos as credenciais do usuario admin newSecurityManager(None, app.acl_users.getUserById('admin')) # se fizer alterações em conteúdos/objetos tem que fazer o commit transaction.commit() ct = site.portal_catalog paginas = ct(portal_type='Document') paginas_e_noticias = ct(portal_type=['Document', 'News Item']) paginas_publicadas = ct(portal_type='Document', review_state='published') Para saber os índices de buscas vá na ZMI e acesse a aba Indexes no portal_catalog. No exemplo acima portal_type e review_state são os nomes dos índices que usamos na busca. > > Por exemplo assim: > > Entre com o seguinte comando na instância do seu Plone. > > bin/instance debug > > >>> app['pasta'] # retorna o objeto pasta dentro do objeto App, uma pasta > na raiz do seu Zope > > >>> app['Plone'] # pega o Plone criado pelo Unified Installer > > >>> app.objectIds() # lista os Ids dos objetos dentro da raiz > > >>> app['Plone'].objectIds() # lista os Ids dos objetos dentro do Plone > > Dá uma procurada por instance debug authentication para ver como logar no > shell em debug. > > Tô sem tempo de escrever mais, mas acho que já dá para vc ir caminhando > um pouco. :-) > > Rapaz, salvou meu dia! > > Eu conseguia até recuperar os objetos adequados, mas não os atributos > dele (mandei um e-mail agorinha explicando isso). Usando o instance eu > consegui. > > Queria poder fazer isso via Python, assim só mandava o script para o > pessoal que me pediu e eles rodavam... mas isso aí já foi um grande > avanço! Obrigado! > Dá para fazer um script python que faço o que vc quer. Faça o script como vc faria no shell de debug e depois rode assim: bin/instance run path/to/script.py Eu utilizo isso para fazer migrações de conteúdos de portais para o Plone. Até mais, -- Luciano Pacheco blog.lucmult.com.br