You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 8技术问询:如何获取当前活动ID/模型字段及未保存表单字段

在Odoo 8中访问编辑模式未保存表单的字段

你遇到的问题核心是:未保存的新记录还未写入数据库,不存在active_id,所以通过env.context.get('active_id')只能拿到None。要访问这类记录的字段,直接使用当前记录集self即可,具体解决方法如下:

原理说明

编辑模式下的未保存记录,是在客户端临时缓存、尚未持久化到数据库的实例,此时没有数据库ID,自然无法通过active_id获取。而Odoo的ORM会把当前编辑的记录实例绑定到方法的self参数上(配合合适的API装饰器),直接通过self就能访问所有字段值。

修改后的代码示例

@api.one
def _check_butcher(self):
    # 直接通过self访问未保存记录的字段
    can_butcher_value = self.can_butcher
    logging.info("TEST \n TEST %s" % can_butcher_value)
    return can_butcher_value

关键注意点

  • 如果是按钮触发的方法,确保按钮的context没有覆盖默认值,且方法使用@api.one或@api.multi装饰器(Odoo 8中推荐用@api.one处理单条记录)。
  • 若为计算字段,需设置store=False(因为未保存记录无法存储计算结果),并通过self直接计算字段值。

内容的提问来源于stack exchange,提问作者juggss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:11:21