Estou explorando o recurso External Methods pra saber se é possível
aproveitar classes que eu já construíra em Python.

Fiz uma busca nas mensagens da lista com essa palavra-chave, mas não
encontrei o que preciso. Há citações de External Methods mas pra
outras finalidades.

Li a respeito desse recurso no Definitive Guide to Plone (versão
12/2006). Fiz o exemplo do livro (pág 149) e funcionou.

Aí tentei instanciar um objeto de uma classe Usuario que eu criei,
usando um External Method e um Page Template.

Pra simplificar, essa classe Usuario tem um método getNome().

Criei um módulo python chamado BLOBFactory (BLOB é o projeto). Eis o
código:

from BLOB.modelos.class_Usuario import Usuario

def criaUsuario(self):
novoUsuario = Usuario()
novoUsuario.setNome('Paulo')
novoUsuario.setEmail('[EMAIL PROTECTED]')

return novoUsuario

Aí eu criei, dentro de um site Plone, na pasta Custom, um External Method:

id: UsuarioFactory
module Name: BLOBFactory
function Name: criaUsuario

Em seguida, criei um Page Template, chamado exibeUsuario:

<html>
<head>
<title tal:content="template/title">The title</title>
</head>
<body>

<h1>README.txt</h1>
<tal:define define="usuario context/UsuarioFactory" >
<p tal:content="python:usuario.setNome()"></p>
</tal:define>

</body>
</html>

Quando eu uso a aba Test, ele me abre uma janela Plone pedindo login e
senha. E ele fica em um loop, pedindo login e senha e sempre voltando.
Isso não aconteceu com o exemplo do livro. O que pode ser?


Responder a