Cara,

Só consegui fazer chamadas dinâmicas assim, como vc quer, usando restrictedTraverse.
Mude contexto = 'portal.how-to' p/ contexto = 'portal/how-to' e MyHowTo = getattr(contexto,objeto) p/ MyHowTo = getattr(container.restrictedTraverse (contexto),objeto) e tente.

[ ],
--
JJ (|´:¬{)»
---------------------------------------------
"Eu sou a ressurreição e a vida. Quem crê em mim, ainda que morra, viverá; e todo o que vive e crê em mim não morrerá, eternamente. Crês isto?"
O Senhor, Jesus Cristo - Jo.11:25-26
---------------------------------------------

2006/5/10, Rodrigo Castardo < [EMAIL PROTECTED]>:
Pessoal,

tou implementando uma coisa por aqui, e pintou uma duvida. Pesquisando
sobre o meu problema encontrei o seguinte

http://plone.org/documentation/how-to/manipulating-plone-objects-programmatically/

<code>
from Products.CMFCore.utils import getToolByName

# you know some object which is refered as "context"
portal_url = getToolByName(context, "portal_url")
portal = portal_url.getPortalObject()

# you have obtain plone.org portal root object somehow and it's
# stored in local variable "portal"
documentation = portal.documentation
howTos = getattr(portal, "how-to") # note that we need use getattr
because dash is invalid in syntax
myHowTo = getattr(howTos, "manipulating-plone-objects-programmatically")
</code>

ate' aqui nao tem segredo, o meu problema e' o seguinte, preciso fazer
quase a mesma coisa o que o codigo acima faz, porem [e e' aqui que
comeca minha duvida] com argumentos dinamicos como abaixo

<mycode>
from Products.CMFCore.utils import getToolByName

# you know some object which is refered as "context"
portal_url = getToolByName(context, "portal_url")
portal = portal_url.getPortalObject()

contexto = 'portal.how-to'
objeto = 'manipulating-plone-objects-programmatically'

MyHowTo = getattr(contexto,objeto)
</mycode>

isso roda dentro de um loop, estou importando pastas do file system
pra dentro do Plone, tenho uma classe com um metodo que lista
recursivamente o conteudo de uma determinada pasta no file system, no
loop que le o conteudo da tal pasta eu passo o path do parent, o nome
da pasta e o nome do objeto a ser criado para o trecho de codigo
acima.

Problema: a variavel contexto e' interpretada como string [claro, pois
e' uma string :-)] e me retorna o erro:

'str' object has no attribute 'teste'
#teste = valor da variavel/nome da pasta

como fazer pra q ela seja interpretada como path sem ter q quebrar
todo o path pra fazer conforme o primeiro trecho de codigo q citei no
comeco do e-mail ?

/me pensa q tem um jeito de passar o path inteiro e espera nao estar errado :-)

Se alguem puder me dar um help, Valeu !!!

[]'s!

--
RodrigoCastardo
[EMAIL PROTECTED]
MSN - [EMAIL PROTECTED]
http://rodrigocastardo.objectis.net/



Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a