Odoo 在创建记录时,如何阻止自动向关注者发送电子邮件?

Odoo 在创建记录时,如何阻止自动向关注者发送电子邮件?,odoo,odoo-10,odoo-view,Odoo,Odoo 10,Odoo View,每当我在订阅中创建一个记录或更改记录中的状态时,就会触发一封邮件,发送给记录中包含日志的关注者。如何停止自动发送这些邮件,从而拾取在表单视图中创建的日志?以下是邮件的创建()。线程的来源: @api.model def创建(自身、值): “抖动覆盖: -订阅uid -订阅家长的追随者 -记录创建消息 """ 如果self.\u context.get('tracking\u disable'): 返回超级(MailThread,self).create(值) #订阅uid,除非被要求不订阅 如果

每当我在订阅中创建一个记录或更改记录中的状态时,就会触发一封邮件,发送给记录中包含日志的关注者。如何停止自动发送这些邮件,从而拾取在表单视图中创建的日志?

以下是
邮件的
创建()
。线程
的来源:

@api.model
def创建(自身、值):
“抖动覆盖:
-订阅uid
-订阅家长的追随者
-记录创建消息
"""
如果self.\u context.get('tracking\u disable'):
返回超级(MailThread,self).create(值)
#订阅uid,除非被要求不订阅
如果不是self.\u context.get('mail\u create\u nosubscribe'):
message_follower_id=值。get('message_follower_id')或[]webclient可以不发送或发送False
消息\u follower\u id+=self.env['mail.followers']。\u添加\u follower\u命令(self.\u名称,[],{self.env.user.partner\u id.id:None},{},force=True)[0]
值['message\u follower\u id']=message\u follower\u id
线程=超级(MailThread,self).create(值)
#自动记录,除非要求不记录(主要用于各种测试目的)
如果不是self.\u context.get('mail\u create\u nolog'):
doc_name=self.env['ir.model'].搜索([('model','=',self.u name)]).读取(['name'])[0]['name']
thread.message\u post(正文=u(“%s已创建”)%doc\u名称)
#自动订阅:考虑值和默认值
创建值=dict(值)
对于键,在self.\u context.iteritems()中使用val:
如果key.startswith('default_')和key[8:]不在create_值中:
创建_值[键[8:]=val
thread.message\u auto\u subscribe(创建值.keys(),值=创建值)
#跟踪值
如果不是self.\u context.get('mail\u notrack'):
如果“lang”不在self.\u上下文中:
track\u thread=thread.with\u context(lang=self.env.user.lang)
其他:
跟踪线程=线程
tracked\u fields=跟踪线程。\u获取\u跟踪的\u字段(values.keys())
如果跟踪了多个字段:
初始_值={thread.id:dict.fromkeys(跟踪的_字段,False)}
跟踪线程。消息跟踪(跟踪字段、初始值)
回位螺纹
正如您所看到的,有一些上下文标志可以处理这种情况。根据您的要求,应使用
邮件\u创建\u nolog

@api.model
def创建(自身、VAL):
返回super(MyModel,self.with_context(mail_create_nolog=1)).create(VAL)

只需进入设置->技术设置->子类型->禁用模型的通知


在您的示例中,对于sale.subscription,只需单击默认复选框即可禁用模型。

因此,如果我添加此方法sale subscription,那么我将不会收到邮件?您还可以使用
mail\u create\u nosubscripte
告诉Odoo不要向创建用户订阅新线程(在您的示例中是订阅)。或者,如果您想在创建时禁用整个线程功能,只需使用
tracking\u disable