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

如何从数据库访问并修改Odoo payments_widget对应支付数据?

如何访问Odoo支付小部件对应的实际数据库数据?

咱们先把底层逻辑理清楚:你看到的payments_widget其实是个计算字段,它本身并不存储在数据库里,而是Odoo通过关联的真实支付记录动态计算生成的界面展示内容。要修改错误的支付值,得直接操作它背后关联的核心数据表。

核心关联的数据库表

  • account_payment:这是存储所有支付记录的核心表,支付的金额、日期、状态、关联伙伴等关键数据都存在这里。
  • account_move:发票本质上是account_move的一种记录(通过type字段区分,比如客户发票是out_invoice),你的目标发票数据就存在这个表里。
  • account_payment_move_rel:这是支付和发票之间的多对多关联中间表,用来记录哪笔支付对应哪张发票(因为一笔支付可能核销多张发票,一张发票也可能被多笔支付核销)。

找到目标发票对应的支付记录

假设你要修改的发票在account_move表中的id是123,可以用下面的SQL语句查询到关联的所有支付记录:

SELECT ap.*
FROM account_payment ap
JOIN account_payment_move_rel rel ON ap.id = rel.payment_id
WHERE rel.move_id = 123;

执行后就能拿到该发票所有关联支付的完整数据,找到你需要修改的那笔支付的id(比如456)。

修改支付记录的错误值

找到目标支付的id后,直接更新account_payment表的对应字段即可。比如要修改支付金额和支付日期:

UPDATE account_payment
SET amount = 100.00, payment_date = '2024-05-20'
WHERE id = 456;

重要提醒

  • 操作前务必备份数据库:直接修改数据库风险很高,一定要先做好备份,最好在测试环境验证操作无误后再在生产环境执行。
  • 刷新Odoo缓存:修改数据库后,需要在Odoo的开发者模式下刷新对应记录,或者重启Odoo服务,确保界面能同步显示修改后的内容。

内容的提问来源于stack exchange,提问作者T.Nel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:43:42