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: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.