python - Odoo 如何继承 Mail.Thread AbstractModel 并重写该类的函数?

标签 python abstract-class odoo-8 overriding

我想从 mail.thread 抽象类中改变一些东西。所以我继承了mail.thread,写了override message_tracked函数。但它没有调用覆盖函数......只是调用了基本函数。是不是因为 mail.thread 是抽象模型?

我试过 osv.osv 和 osv.AbstractModel 并在 init.py 中导入这个 py 文件,并将“邮件”模块放在 openerp.py 的依赖 dic 中

class mail_thread(osv.osv):
    _inherit = 'mail.thread'  

class mail_thread(osv.AbstractModel):
    _inherit = 'mail.thread' 

他们没有调用这个类中的任何函数 def writedef message_track

如果您不介意,请向我解释如何为 message_track 编写覆盖函数。

最佳答案

这可能与此处描述的问题有关: https://github.com/odoo/odoo/issues/9084

作为解决方法,您可以尝试按照此处所述解决此问题: Override python function in odoo

我是这样做的:

from openerp.addons.mail.mail_thread import mail_thread

message_new_orig = mail_thread.message_new

def message_new(self, cr, uid, msg_dict, custom_values=None, context=None):
    # call super function
    msg_id = message_new_orig(self, cr, uid, msg_dict,
                              custom_values=custom_values, context=context)
    # put custom code here
    # ...

    return msg_id

# install overide
mail_thread.message_new = message_new

关于python - Odoo 如何继承 Mail.Thread AbstractModel 并重写该类的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31936122/

相关文章:

python - => 在谷歌 Python 示例中

python - Pandas 日期时间到 unix 时间戳秒

c++ pimpl 和抽象类在一起

python - 如何检测odoo中看板 View 的拖放事件?

xml - 是否可以在 Odoo 中的字段上实现条件属性?

python - WebDriver异常: Message: unknown error: cannot get automation extension from unknown error using Selenium ChromeDriver and Chrome through Python

python 请求帖子未提交

Java接口(interface)契约问题

当给定抽象基类的引用 View 时,C++23 std::views::zip 错误

python - Odoo v8 中的独特电子邮件字段