Récupération de la date et de l'heure courante dans une formule d'initialisation

Bonjour,

je cherche à récupérer la date et l’heure courante pour horodater des modifications de lignes dans une table d’historique.

D’après l’assistant pour générer les formules python, je ne peux pas récupérer l’heure actuelle car « la fonction doit être une fonction pure qui ne peut pas interagir avec l’extérieur (comme l’horloge système) ».

J’ai essayé de saisir diverses requêtes python directement dans la formule d’initialisation (ex : date(), datetime.now() …) mais j’obtiens une erreur à chaque fois.

Si qqun a une solution, je suis preneur.

Merci par avance.

Je viens de reessayer et de trouver a priori une syntaxe qui fonctionne, je la poste ici si cela peut servir :
datetime.datetime.now()

Si certains ont plus simple, je reste preneur :slight_smile:

Edit : j’ai proposé à l’assistant d’utiliser cette syntaxe et il me répond tjrs que : il ne peut pas utiliser datetime.datetime.now() dans cette fonction car cela impliquerait une side effect (interaction avec l’environnement extérieur pour obtenir l’heure actuelle) et modifierait implicitement le comportement de la fonction en fonction du moment où elle est exécutée.

Du coup, je m’interroge si la solution datetime.datetime.now() ne repose pas sur une « faille » possible de sécurité avec cette interface avec l’environnement extérieur ?

La formule NOW() est la fonction consacrée dans Grist (sans doute une encapsulation de datetime.datetime.now() sans effet secondaire).

En fonction de l’instance/version de Grist, il existe même des raccourcis à la création de colonne (timestamp, authorship, date helpers, UUID - pour la version en) disponibles dans l’interface Grist (Bouton + à l’extrémité d’une table).

Bonjour, il existe cet exemple avec la fonction NOW().strftime() qui fonctionne bien :

Merci à vous 2 pour vos retours qui convergent vers la même bonne pratique.
J’ai épinglé le retour d’Enro comme solution car il permet de faire le lien vers un fil plus général sur l’historisation.

1 « J'aime »