Já tentou restrictedTraverse?


2006/5/10, Rodrigo Castardo <[EMAIL PROTECTED]>:
On 5/10/06, Dirceu Pereira Tiegs <[EMAIL PROTECTED]> wrote:
> Olá Rodrigo,

Opa!

> Não sei se entendi bem o problema, mas acho que você deveria substituir a linha:
>
> contexto = 'portal.how-to' # str
>
> por
>
> contexto = getattr(portal, 'how-to') # portal_url.getPortalObject().how-to

e' exatamente isso q eu espero NAO precisar fazer :-D

pois o conteudo da variavel tras a path completada, entao eu teria q
dar um contexto.split('.') e varre o resultado pra fazer isso, espero
que haja outra forma de fazer :-)

rodando esse script abaixo direto na ZMI eu consigo fazer uq pretendo

<script>
from Products.CMFCore.utils import getToolByName

portal = getToolByName(context, 'portal_url').getPortalObject()

pasta = getattr(portal.pastaPai.pastaFilho.pastaNeto, 'minhaPasta')

return pasta
</script>

porem qdo eu mudo o conteudo de 'portal.pastaPai.pastaFilho.pastaNeto'
para o nome da variavel que contem exatamente a mesma infor isso e'
interpretado como string e nao como a path q eu gostaria :-(

e esse e' meu problema ;-)

Valeu Dirceu!

[]'s!

> Abraço,
>
> 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]
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
> >
>
>
> --
> Dirceu Pereira Tiegs
> http://dirceu.info/
>
>
> Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
> Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>


--
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]
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:
    http://br.yahoo.com/info/utos.html







--
Att,
Wilton Souza Alencar
www.tom.pro.br


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