Odoo Studio创建动态日期时间字段:打开记录时显示当前日期
解决方案
1. 实现已保存记录日期每日自动变更(连续日期功能)
核心通过Odoo的**计划任务(Cron)**实现每日自动更新:
步骤1:编写日期更新方法
在目标模型中添加Python方法,遍历目标记录并将日期字段加1天:from datetime import timedelta from odoo import models class TargetModel(models.Model): _inherit = 'your.target.model' # 替换为实际模型名 def auto_update_daily_date(self): # 可添加过滤条件,仅更新符合要求的记录 records = self.search([]) for rec in records: if rec.your_date_field: # 替换为实际日期字段名 rec.your_date_field += timedelta(days=1)步骤2:配置计划任务
- 进入Odoo后台,打开「设置 → 技术 → 自动化 → 计划任务」
- 新建任务:
- 名称:自定义(如「每日自动更新日期」)
- 模型:选择目标模型
- 方法:选择刚创建的
auto_update_daily_date - 执行频率:设置为每日执行(比如凌晨0点)
- 勾选「已激活」启用任务
2. 在Odoo Studio中创建动态日期时间字段(打开即显示当前时间)
通过不存储的计算字段实现动态显示当前时间:
步骤1:在Studio中添加字段
- 打开Odoo Studio,进入目标模型编辑界面
- 点击「添加字段」,选择「日期时间」类型,填写字段名称(如
live_current_datetime)
步骤2:配置动态计算规则
- 在字段设置面板中,找到「计算」选项,选择「Python代码」
- 在代码框中输入:
from odoo import fields return fields.Datetime.now() - 勾选「不存储」选项(确保每次打开记录都会重新计算当前时间)
- 保存字段并发布Studio修改
完成后,记录创建时会显示当前日期时间,后续每次打开该记录,字段都会自动刷新为当前时间,而非创建时的固定值。
内容的提问来源于stack exchange,提问作者Vladek Ferrer
相关产品推荐
相关产品推荐

