odoo開發筆記--日期or時間字段給定默認值


開發中經常有這樣的場景,需要給某個日期或者時間類型的字段默認值;

總結一下,實現方式,大概有3種寫法:

(1)odoo自帶模型字段:"fields."

可以在odoo模型定義中進行設置,如下樣例提供參考:

    test_data = fields.Date(string=u"日期", default=fields.Date.today) # 日期,默認今天寫法
    test_time = fields.Datetime(string=u"時間", default=fields.Datetime.now) #默認值為:系統當前時間

 (2) 利用python自帶時間模塊 

---這里注意一下,可能有個小坑,默認時間盡量用第一種方式,如果調python的模塊包賦值,而odoo程序又運行在docker容器中,那么這種情況下界面上生成的時間,會有一定時差,重啟容器可以解決。

from datetime import datetime
test_time = fields.Datetime(string=u"當前時間", default=datetime.now()) #默認值為:系統當前時間

(3)自己構造個方法:用到odoo api.model

定義內部方法:_get_now_time,方法內調用python時間模塊給到字段值,然后定義字段的時候,default=_get_now_time

注意,代碼先后順序,先定義方法,再寫字段調用方法。

    @api.model
    def _get_now_time(self):
        test_time = datetime.now()
        print('******************* date_time_now ***********************')
        print(date_now)
        return date_now

    test_time = fields.Datetime(string=u'當前時間', copy=False, track_visibility='onchange',
                                 default=_get_now_time)

OK, 小伙伴們,可以嘗試下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM