Il 25/01/2011 10.17, Riccardo Lemmi ha scritto:

A parte gli errori nel codice:

    <span tal:define="totale python:0"/>

     se chiudi subito lo scope la variabile non è visibile nei tag sotto
     (puoi mettere però la key 'global')

    python:(totale + my_row/MEDIA) ->  my_row.MEDIA

      hai usato una path expression all'interno di una espressione python.

Grazie

sto provando le modifiche suggerite ma mi da ancora errore

<span tal:define="global totale python:0"/>
   <table class="grid listing">
     <tr>
        <th>Media</th>
     </tr>
    <tr tal:repeat="my_row here/getSMT_py">
        <td><span tal:content="my_row/MEDIA">-0:30</span></td>
        <span tal:define="totale python:(totale + my_row.MEDIA)"/>
     </tr>

   <span tal:content="totale">000</span>
 </table>

errore

    * Module Products.PageTemplates.ZRPythonExpr, line 49, in __call__
      __traceback_info__: (totale + my_row.MEDIA)
    * Module PythonExpr, line 1, in <expression>

AttributeError: 'dict' object has no attribute 'MEDIA'



il problema è che queste operazioni non devono essere fatte nel template ma in
uno script separato, meglio ancora in una browser view.
Il motivo è che in questo modo si semplifica il testing e il debugging.

Lo script dovrebbe quindi implementare la logica, leggendo da DB,
riformattando i dati ed eventualmente facendo "i conti".

Il template chiama lo script e visualizza i dati preparati (e basta).

Hai ragione, appena la confusione si è dipanata lo sistemo in modo
più model-view-controller

era giusto per provare le TAL

Giuseppe
_______________________________________________
Plone-IT mailing list
[email protected]
https://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html

Rispondere a