On Tuesday 25 January 2011, Giuseppe Arvati wrote:
> 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'
>

Essendo un dizionario

   my_row['MEDIA']

meglio ancora

   float(my_row['MEDIA'])

tenta il cast a float ed un eventuale errore ti segnala che MEDIA non contiene 
un numero.

> > 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

Meglio se studi bene python e semplifichi i costrutti usati nei page template.
-- 
Riccardo Lemmi                           Email:   ricca...@reflab.com
Reflab S.r.l. - Plone Design, Development and Consulting
Phone: +39 349 4620820                         http://www.reflab.com

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Plone-IT mailing list
Plone-IT@lists.plone.org
https://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html

Rispondere a