我想从mail.thread抽象类改变一些东西。所以我继承了mail.thread并写了覆盖message_tracked函数。但是它没有调用覆盖函数......只是调用了基函数。它是由mail.thread引起的抽象模型吗?
我尝试了osv.osv和osv.AbstractModel并将此py文件导入 init .py并将'mail'模块放入 openerp .py的依赖项中
class mail_thread(osv.osv):
_inherit = 'mail.thread'
class mail_thread(osv.AbstractModel):
_inherit = 'mail.thread'
他们没有在此课程中调用任何函数 def write 或 def message_track
如果您不介意,请解释我如何为message_track编写覆盖功能。
答案 0 :(得分:2)
这可能与此处描述的问题有关: 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