Odoo 模型函数覆盖无效

Posted

技术标签:

【中文标题】Odoo 模型函数覆盖无效【英文标题】:Odoo Model function override has no effect 【发布时间】:2021-02-28 16:18:37 【问题描述】:

我想做的事:

我正在为 Odoo 开发一个 POS 模块。

为 odoo pos 创建新的支付方式时,有一个“使用支付终端”部分,其中包含所有可用支付终端的列表。该列表是数据库中名为“use_payment_terminal”的计算字段。我想将我的自定义模块添加到该选择中。

我已经做了什么:

    计算字段由我覆盖的“_get_payment_terminal_selection”函数填充:
def _get_payment_terminal_selection(self):
    return super(PosPaymentMethod, self)
             ._get_payment_terminal_selection() + [('xxx', 'xxx')] 
    我添加了一个尝试直接调用上述函数的初始化后挂钩,因为我不确定问题是否存在,并假设该函数没有按预期调用。

问题:

这些解决方案都没有奏效,选择仍然没有显示我期望的结果。关于为什么会这样的任何建议?

【问题讨论】:

【参考方案1】:

试试这个方法:

def _get_payment_terminal_selection(self):
   return super(PosPaymentMethod, self)._get_payment_terminal_selection() + [('xxx', 'xxx')]

【讨论】:

以上是关于Odoo 模型函数覆盖无效的主要内容,如果未能解决你的问题,请参考以下文章

在 Odoo 中,如何在 ir_attachment 类中覆盖 _file_write?

有人可以解释一下啥是受保护的覆盖无效吗? [复制]

在 Django 中覆盖默认用户模型后无法登录

如何从 Django 模型(覆盖)save() 函数向视图发送警报或消息?

在Odoo中更新上下文8

User.find 不是函数,一旦编译就无法覆盖“用户”模型