[ João Paulo Sinieghi <[EMAIL PROTECTED]> ]: ---------------------------------------- | | eu criei o Document com o id my_document, e tentei usar o script | python abaixo: | | from Products.CMFCore.utils import getToolByName | urltool = getToolByName(context, "portal_url") | portal = urltool.getPortalObject() | document = getattr(portal, "my_document") | ...
| mas está dando um erro, | | Tipo de Erro | AttributeError | Valor do Erro | my_document | | O que pode ser? Enquanto um dos nossos verdadeiros Ploneguru não se manifesta, vou dar um pitaco. Experimente fazer document = context.my_document ao invés de document = getattr(portal, "my_document") O seu script precisa identificar a localização do objeto que vc quer acessar. Seu código original tentava buscar my_document como se fosse um atributo direto da raiz do portal. Eu não sei se my_document foi criado diretamente lá (onde poderia ser acessado através de portal.my_document) ou se está em outra subpasta. A construção "context.my_document" vai tentar localizar o objeto usando o mecanismo de Aquisição do Zope, sendo portanto mais flexível. Suponha que o script Python tenha sido invocado pela url http://raiz_do_site/a/b/c/seu_script A construção context.my_document vai buscar o objeto my_document identificando cada objeto associado a um sub-path na URL. Logo vai testar se my_document é acessível através do objeto vinculado ao caminho a/b/c, em caso de falha a/b, em caso de falha a em caso de falha cai na raiz do portal, e se falhar vai dizer que o objeto não foi encontrado. Se por acaso o seu_script (sempre) estiver no mesmo diretório que o objeto my_document. Então, vc também poderia usar a construção: document = container.my_document Espero que isto ajude. Abração, Senra ------------- Rodrigo Senra GPr Sistemas