[ 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