.. _orm_genropy/virtual_columns/pycolumn: pyColumn ======== Le pyColumn sono un particolare tipo di colonne calcolate in cui la formula viene definita in un metodo separato (``py_method``) anziché all'interno della colonna stessa. Come per le altre colonne virtuali, l'elaborazione avviene a **ogni caricamento della pagina**, di conseguenza i valori saranno sempre aggiornati. .. hint:: Per la loro natura "energivora" si consiglia di limitare l'utilizzo delle pyColumn Di seguito un esempio molto semplice di funzionamento di *pyColumn*. Si noti che, avendo la possibilità di scrivere un metodo Python a sé stante, il codice può essere molto complesso e restituire semplicemente un valore o un dict(). .. DM ehm, non ricordo se deve restituire per forza un dict() o in effetti può restituire anche un singolo valore. Si definisce innanzitutto la :ref:`colonna` come segue:: tbl.pyColumn('nome_mese',name_long='Nome mese') E nella tabella si costruisce un metodo con il nome della colonna:: def pyColumn_nome_mese(self,record,field): return dict(m1='!![it]Gennaio',m2='!![it]Febbraio',m3='!![it]Marzo',m4='!![it]Aprile',m5='!![it]Maggio',m6='!![it]Giugno', m7='!![it]Luglio',m8='!![it]Agosto',m9='!![it]Settembre',m10='!![it]Ottobre',m11='!![it]Novembre',m12='!! [it]Dicembre')['m%s' %record['data_inizio'].month] .. raw:: html
**Parametri:** +------------------------+------+--------------------------------------------------+ | Nome parametro | Tipo | Descrizione | +========================+======+==================================================+ |py_method |T |Permette di indicare il metodo, normalmente omesso| | | |perché riconosciuto automaticamente con la | | | |sintassi def pyColumn_nomecolonna | +------------------------+------+--------------------------------------------------+ .. sectionauthor:: Davide Paci