Tu n'as pas accès à l'objet mais à un "pointeur" vers ce dernier
pdeoliveira t'a donné la solution.
il faut depuis un script récupéré l'objet, comme celà tu accèderas à ses propriétés.
Or tu fais une requête dans le catalog de ton Zope. Ce dernier te retourne une liste de brains, c'est à dire des indexs vers tes objets mais non les objets eux mêmes. C'est une erreur classique d'autant plus insidieuse que tu crois avoir un lien vers l'objet car tu récupères son attribut Title. Mais c'est un leurre car en fait tu récupères le Title qui est indexé dans le catalog de Zope car c'est une méta-data. Donc contrairement à ce que tu pourrais croire tu n'as toujours pas accès direct à l'objet. Fais le test avec description, ou la date de dernière modif, le catalog te les renverras.
Ce que tu peux faire dans ta zpt tu crées un lien vers l'objet depuis le résultat du catalog :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
1 - requete catalog :
results = catalog.searchResults etc...
2 - tu as un tal repeat pour chaque objet de results ici par exemple :obj
<tal:block tal:repeat="obj results">
3 - tu récupères l'objet depuis le brain remvoyé par le catalog (ici : obj)
<div tal:define="o python:obj.getObject();
text python:o.CookedBody(stx_level=2)[:150];">
tu as maintenant ton objet il s'appelle o, tu peux jouer avec |
Voilà @++