[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