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

Odoo 15社区版手动创建付款时出现ValueError错误的解决咨询

Odoo 15社区版手动创建付款时出现ValueError错误的解决咨询

看起来你遇到的是Odoo社区版原生模型和视图(或第三方/自定义模块)不兼容导致的字段缺失问题,我来帮你一步步梳理解决方案:

先排查模块层面的问题

首先得搞清楚这个effective_date字段是哪里来的,毕竟Odoo 15社区版的原生account.payment模型确实没有这个字段:

  • 回忆下最近有没有安装过会计相关的第三方模块?有些增强付款功能的第三方模块会给account.payment添加effective_date字段,如果模块没正确安装、依赖缺失,或者中途被禁用,就会出现这种报错。你可以进入开发者模式,在「应用」里搜索类似“payment effective date”的关键词,找到对应模块后尝试重新安装。
  • 如果是你自己开发了自定义模块,那大概率是你在视图或者业务逻辑代码里引用了effective_date,但没在account.payment模型里定义这个字段,导致视图渲染时找不到字段。

手动添加effective_date字段的可行方案

是的,你完全可以给account.payment模型添加这个字段,这里分两种方式:

方式一:直接在系统里通过开发者模式添加

  1. 进入开发者模式后,打开「设置」>「技术」>「模型」,搜索找到account.payment模型。
  2. 点击页面上的「创建」按钮来添加新字段,推荐设置以下属性:
    • 字段名称:effective_date(必须和报错里的字段名完全一致)
    • 字段类型:选「日期」(Date)就足够,付款生效日期一般不需要具体时间
    • 标签:可以填「生效日期」(中文系统)或者「Effective Date」(英文系统)
    • 存储:一定要勾选,确保字段值能存在数据库中
    • 默认值:可以设置为fields.Date.today(),让新付款默认生效日期为当天
    • 必填:根据你的业务需求决定是否勾选,非强制的话就不用选
  3. 保存字段后,记得点击模型页面顶部的「升级」按钮,触发数据库结构更新。
  4. 最后检查会计模块的付款表单视图(比如account_payment_form),确保视图里引用该字段的组件正常,要是之前视图里已经有这个字段的布局,现在字段存在后就不会再报错了。

方式二:通过自定义模块添加(推荐,更易维护)

如果希望修改能跟随模块迁移、不受Odoo版本更新影响,建议写一个简单的自定义模块:
在模块的models目录下新建py文件,添加以下代码:

from odoo import models, fields

class AccountPayment(models.Model):
    _inherit = 'account.payment'

    effective_date = fields.Date(
        string='Effective Date',
        default=fields.Date.today(),
        help='The date when this payment takes effect'
    )

安装这个自定义模块后,字段就会自动添加到account.payment模型里,后续维护也更方便。

补充说明

为什么从销售/采购订单里付款没问题?因为那个付款流程调用的是专属视图或者业务逻辑,没有引用effective_date字段,只有会计模块的付款创建页面用到了这个字段,所以只有在那里触发报错。

备注:内容来源于stack exchange,提问作者Ulises Gonzalez Horta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 14:09:05