Benvenuto!

Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.

1

1
Luigi Di Naro
Il 18/11/20, 14:42

il problema non e' del datetime (stavo per risponderti ma ti sei risposto da solo) ma di tutti i default .... vengono valutati una solo volta allo strartup del server ... se il default e' una funzione questa viene eseguita quindi il valore cambia.

Ti stavo per rispondere, stai per caso usando dei default, la risposta non e' piu' necessaria ... aggiungo solo che tale comportamento e' esteso a tutti i default non solo datetime ...


La tua risposta

0
Walter Tosolini
Il 18/11/20, 15:15

Grazie


La tua risposta


0
Walter Tosolini
Il 18/11/20, 14:10

Niente mi autorispondo... da altrove fonte:

You have to use lambda function to get the current time. Otherwise it will take the latest server restart time.

_defaults = {
'date_action': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
}


Non sapevo di questa cosa del restart server time



La tua risposta

1
Walter Tosolini
Il 18/11/20, 14:18

Mi ri-rispondo da solo, la soluzione sopra funziona ma non è elegante.
Molto meglio questa:

default=lambda self: fields.datetime.now()

La tua risposta

2
Lorenzo Battistini
Il 18/11/20, 15:21

Oppure

default=datetime.now


La tua risposta

0
Walter Tosolini
Il 18/11/20, 18:52

ehm a meno che datetime.now non sia differente da datetime.now() è proprio quello che avevo fatto inizialmente.


La tua risposta

1
Lorenzo Battistini
Il 18/11/20, 21:26

Infatti è differente, datetime.now() ritorna una data, datetime.now un metodo


La tua risposta

0
Walter Tosolini
Il 19/11/20, 09:30

Ok... ma questa cosa è specifica di Odoo? perché dalla documentazione non ci sarei mai arrivato. Anzi io deduco che le parentesi siano obbligatorie.

https://docs.python.org/3/library/datetime.html#datetime.datetime.now



La tua risposta

0
Lorenzo Battistini
Il 19/11/20, 13:53

No, è python

>>> datetime.now
<built-in method now of type object at 0xa33e60>
>>> datetime.now()
datetime.datetime(2020, 11, 19, 14, 52, 18, 415698)

La tua risposta

Resta informato

Informazioni sulla comunità

Forum ufficiale dell'Associazione Odoo Italia Leggi le linee guida

Strumenti di richiesta

56 follower

Statistiche

Richiesta del: 18/11/20, 14:01
Vista: 2052 volte
Ultimo aggiornamento: 19/11/20, 08:47

 Entra in contatto diretto con la comunità.

Unisciti alla chat Discord.