[Plone-IT] problema con i valori nulli

Riccardo Lemmi riccardo a reflab.it
Mar 3 Nov 2009 13:10:36 UTC


On Tuesday 03 November 2009, Giacomo Zanobini wrote:
> accanto ai contenuti, vorrei visualizzare la data di pubblicazione (se è
> già stato pubblicato, altrimenti la scritta "mai pubblicato") tra
> parentesi quadre
>
>  /<tal:block tal:define="data_di_pubblicazione
> python:DateTime(item.EffectiveDate).strftime('[%d/%m/%Y]');/
>
>
> questo codice funziona se l'oggetto è stato pubblicato, ma causa un
> errore se l'oggetto non è mai stato pubblicato, perché non esiste
> l'attributo EffectiveDate.
>
> allora pensavo di fare così:
>  /<tal:block tal:define="data_di_pubblicazione
> python:test(item.EffectiveDate,
> DateTime(item.EffectiveDate).strftime('[%d/%m/%Y]'), '[mai pubblicato]');/
> ma questo dà errore negli stessi casi del precedente
>
>
>
> oppure così:
> / <tal:block tal:define="data_di_pubblicazione
> python:test(item.EffectiveDate != None,
> DateTime(item.EffectiveDate).strftime('[%d/%m/%Y]'), '[mai pubblicato]');/
> questo ancora peggio: mi dice "Unable to parse ('None',), {}"
>
>
> dove sto sbagliando?
>
>
> Giacomo

Stai cercando di fare una cosa che è bene fare in uno script python (si passa 
item come parametro):

1.

try:
  return DateTime(item.EffectiveDate).strftime('[%d/%m/%Y]')
except:
  return 'mai pubblicato'

2.

if item.EffectiveDate is not None:
   return DateTime(item.EffectiveDate).strftime('[%d/%m/%Y]')
else:
   return 'mai pubblicato'

il secondo codice è migliore perchè la gestione dell'eccezione è comunque 
computazionalmente più pesante, da controllare la condizione, potrebbe 
essere:

   hasattr(item, 'EffectiveDate')
oppure
   item.EffectiveDate != ''

Se il template è una browser view si mette il codice come metodo.
-- 
Riccardo Lemmi                           Email:   riccardo a reflab.it
Reflab S.r.l. - Plone Design, Development and Consulting
Phone: +39 349 4620820                         http://www.reflab.it
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: This is a digitally signed message part.
URL:         <http://lists.plone.org/pipermail/plone-plone-it/attachments/20091103/f97dc54b/attachment.asc>


Maggiori informazioni sulla lista Plone-IT