2008/1/11 Paulo <[EMAIL PROTECTED]>:
>  Obrigado amigo funcionou certinho...Mais e para fazer um loop algo assim:
>
>  titulo=['Plone','Zope','Python']
> autor=['XXXX','YYY','ZZZ']
>
>  return container.modelo_xml(titulo=titulo, autor=autor)
>
> Tentei usar o repeat mais não funcionou.

Eu diria que esta forma de estruturar os dados como duas listas
paralelas é bastante bizarra e frágil. Mas se é assim que você quer,
Python tem uma função muito útil chamada zip, que não tem nada a ver
com compressão, mas tem a ver com ziper. Veja como ela funciona:

>>> titulo=['Plone','Zope','Python']
>>> autor=['XXXX','YYY','ZZZ']
>>> zip(titulo, autor)
[('Plone', 'XXXX'), ('Zope', 'YYY'), ('Python', 'ZZZ')]
>>>

Agora fica mais fácil o template percorrer os dados. Mas fica mais
fácil ainda se você transformar a lista de tuplas em uma lista de
dicionários:

>>> [{'titulo':t, 'autor': a} for t, a in zip(titulo, autor)]
[{'autor': 'XXXX', 'titulo': 'Plone'}, {'autor': 'YYY', 'titulo':
'Zope'}, {'autor': 'ZZZ', 'titulo': 'Python'}]

Aí o template pode fazer o repeat, e dentro de cada repetição acessar
livro/titulo e livro/autor.

[ ]s
Luciano

Responder a