2017-02-08 4 views

ответ

1

Попробуйте с помощью следующего кода:

from datetime import datetime, timedelta 

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

И ваше объявление поля будет старт,отделка в качестве даты и времени типа данных ,

1

И после решения для «нового» API, который я рекомендую использовать, потому что вы помечены 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

для нового API в odoo есть default опция в полях , и вы можете создать функцию, чтобы установить параметр по умолчанию два

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

вы можете объяснить, почему это решение? Ответы только на код редко очень полезны, чтобы дать какое-либо понимание решений проблем – Martin

+0

@Martin, что вы хотите знать – m3asmi