Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami
  • Pagina:
  • 1
  • 2
  • 3

ARGOMENTO: dubbi su qweb

dubbi su qweb 1 Anno 3 Settimane fa #30439

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
Miii quante domande :D :D

Che io sappia non è possibile combinare t-if e t-foreach ... il tuo approccio oltretutto mi sembra oltre che corretto di facile lettura e chiaro su cosa vuoi ottenere. Io anche se fosse disponibile quel costrutto non lo userei nel caso da te proposto.

Per quando riguarda il controllo su "FALSE" (un casino che storicamente ha fatto odoo mischiando in molti casi valore booleano FALSE a valore nullo NONE) il recordset o.picking_ids esiste ma ha 0 elementi.

Fare un controllo su FALSE (vedi nota sul casino di odoo di cui sopra) sarebbe sbagliato per due motivi:

1) o.picking_ids potrebbe non essere stato settato ed in quel caso dovrebbe essere NONE
2) o.picking_ids è settato ma ha valore zero elementi quindi non sarebbe "FALSE"

In ogni caso, anche se odoo spesso lo fa, o.picking_ids dovrebbe assumere il valore NONE oppure istanza di recordset.

Nelle verifiche (if ad esempio) python considera FALSE un insieme di valori oltre al semplice FALSE booleano.

ES:

lista = []

if lista:
print('TRUE')
else:
print('FALSE')

Darà come risultato FALSE

Ma se faccio

if lista == None:
print('TRUE')
else.
print('FALSE')

Otterrai ancora una volta FALSE

Ma se fai

if lista != NONE:
print('TRUE)
else:
print('FALSE')

Otterrai TRUE

Tutto questo per dire che nelle verifiche dirette una lista (ed anche un recordset odoo) viene considerata FALSE se non ha elementi ma in effetti il suo valore non è ne FALSE (booleano) ne NONE (puntatore non valorizzato) ma un oggetto di lunghezza 0.

Se fai un controllo con il booleano FALSE il test fallirà sempre perchè lista (o recordset) non saranno mai FALSE booleano ...

Questo in teoria e su python standard, odoo come ho detto e ridetto storicamente ha fatto casino ed ha impostato a FALSE anche elementi che FALSE non dovevano mai essere da qui la confusione su q-web.
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: ndrini

dubbi su qweb 1 Anno 3 Settimane fa #30495

  • ndrini
  • Avatar di ndrini
  • Offline
  • Gold Boarder
  • Messaggi: 291
  • Ringraziamenti ricevuti 22
  • Karma: 0
Grazie per avemi dato una spiegazione così completa!!

:bounce16:
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
  • Pagina:
  • 1
  • 2
  • 3
Tempo creazione pagina: 0.123 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam