2017-02-08 11 views
2

デフォルトで現在の日時と現在の日時+ 1時間を取得する方法は?私は例の下に使用した日付のodooで現在の日時を取得9

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

答えて

1

次のコードで試してみてください。日時データ型として仕上げ

from datetime import datetime, timedelta 

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

そして、あなたのフィールド宣言が開始されます、

1

と私はあなたがOdoo-9タグを付けているため、あなたが使用することをお勧めします「新しい」APIのためのソリューション、次odooに新しいAPIの

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

の分野でdefaultオプションがあります、あなたは2

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

関連する問題