odoo自动获取当前日期赋值给字段

有时候我们需要获得当前的日期,并默认赋值给日期字段。我在使用odoo自带的fields.date.today()时出现了一个问题:

我的一个日期字段属性不能实现获取当天的时间,它现在默认获取的程序运行当天的时间,而不是目前的实际时间,感觉很奇怪。

因为不太清楚fields.date.today()的底层实现逻辑没办法解决问题,因此我换了一种实现方式。自己重写了一个获取时间函数,通过Java代码去获取时间然后赋值给字段,实验后功能正常。

    import datetime 

    # 获取当天时间
    @api.model
    def _get_now_date(self):
        date_now = datetime.date.today()
        return date_now

日期字段赋值

 date = fields.Date(string='日期', default=_get_now_date)

 时间比较

    # 时间比较
    def time_compare(self, record_time):
        # 获取当前时间(<class 'datetime.datetime'>)
        now_time = datetime.date.today()
        diff_time = record_time - now_time
        # diff_time.days自动将timedelta转为int类型,time.seconds:秒差
        day = diff_time.days
        if (day > 2) | (day < -1):
            raise odoo.exceptions.Warning('检查计划日期是否正确!')
        # strftime转换为字符串
        # now_time_str = datetime.datetime.now().strftime('%y-%m-%d')
        # record_time_str = time_str.strftime('%y-%m-%d')
        # mktime参数为struc_time,将日期转化为秒
        # e_time = time.mktime(time.strftime(now_time_str, '%y-%m-%d'))

xml搜索视图:domian时间字段筛选(筛选时间在今天的字段记录)

 <filter string="当天工作计划" name="create_date" 
domain="[('date','&gt;=', time.strftime('%Y-%m-%d 00:00:00')), ('date', '&lt;', context_today().strftime('%Y-%m-%d 23:59:59'))]"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值