2017-10-11 3 views

Répondre

1

Je trouve it.It est simple, il suffit d'écrire ceci sur votre code python comme:

date = fields.Datetime(string="Date", default=lambda *a: datetime.now(),required=True) 

ou

comme celui-ci

date = fields.Datetime(string="Date current action", default=lambda *a: datetime.now()) 

ou

comme celui-ci

date = fields.Date(default=fields.Date.today) 
+0

En fait, ce n'est pas la bonne façon de le faire. Je vais poster une réponse comment le faire et pourquoi le faire de cette façon. – CZoellner

+0

ok j'attendais depuis longtemps pour votre réponse lol – Naveen

+0

Il est juste au-dessus de votre réponse – CZoellner

2

Odoo Date classe de champ fournit des méthodes pour obtenir des valeurs par défaut pour comme aujourd'hui. Pour les dates, la méthode est appelée context_today() et pour les dates context_timestamp(). Vous pouvez passer un horodatage à cette méthode pour obtenir aujourd'hui/maintenant (sans horodatage) ou un horodatage qui sera formé par le fuseau horaire des utilisateurs connectés.

Exemple de code:

from odoo import fields, models 


class MyModel(models.Model): 
    _name = 'my.model' 

    def _default_my_date(self): 
     return fields.Date.context_today(self) 

    my_date = fields.Date(string='My Date', default=_default_my_date) 

Ou la version lambda:

my_date = fields.Date(
     string='My Date', default=lambda s: fields.Date.context_today(s))