• 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, 小伙伴们,可以尝试下。

  • 相关阅读:
    jar 命令 打包装class文件的文件夹
    快捷下载 sourceForge下的资源
    win7 解决git clone 连接被拒绝—hosts文件过期
    tp_link路由器 重新设置
    gradle研究
    开始玩mondrian
    让eclipse启动时拥有jre
    qt md5加密,base64编码解码
    qt 网络库使用介绍
    c 正则表达式
  • 原文地址:https://www.cnblogs.com/hellojesson/p/11065036.html
Copyright © 2020-2023  润新知