2017-02-08 4 views
2

Wie in den Voreinstellungen aktuelle Datum und aktuelle Datetime + 1 Stunde erhalten?Aktuelles Datum in odoo 9 erhalten

Für Datum verwende ich unter Beispiel:

defaults = { 
       'start': fields.Date.today(), 
       'finish': fields.Date.today(), 
} 

Antwort

1

mit folgendem Code Versuche:

from datetime import datetime, timedelta 

defaults = { 
    'start': datetime.now(), 
    'finish': datetime.now() + timedelta(hours=1), 
} 

Und Ihre Felddeklaration Start,Finish als Datumzeit Daten-Typ sein .

1

Und nach einer Lösung für die „neuen“ API, die ich Ihnen empfehlen, zu verwenden, da Sie getaggt Odoo-9:

from datetime import datetime, timedelta 

from openerp import models, fields, api 
# from odoo import models, fields, api # for Odoo 10+ 


class MyClass(models.Model): 
    _name = "my.class" 

    start = fields.Date(string="Start", default="_default_start") 
    finish = fields.Date(string="Finish", default="_default_finish") 

    @api.model 
    def _default_start(self): 
     return fields.Date.context_today(self) 

    @api.model 
    def _default_finish(self): 
     finish = datetime.now() + timedelta(hours=1) 
     return fields.Date.context_today(self, timestamp=finish) 
1

für die neue api in odoo gibt es eine default Option in den Bereichen , und Sie können eine Funktion, um die zwei Standardoption erstellen

start = fields.Datetime('Date', default=fields.Datetime.now,) 
finish = fields.Datetime('Date', default='_get_finish_date',) 

from datetime import datetime , timedelta 
@api.one 
def _get_finish_date(self): 
    return datetime.now() + timedelta(hours=1) 
+0

können Sie erklären, warum dies eine Lösung? Code-Only-Antworten sind selten sehr hilfreich, um einen Einblick in Problemlösungen zu geben. – Martin

+0

@Martin Was möchten Sie wissen? – m3asmi