我正在开展 odoo
项目,我需要每天上午10点自动发送电子邮件 . 我已经创建了预定的操作,但我遇到了问题 . 这是我用来执行发送操作的方法
@api.model
def send_mails(self):
domain = [['name', 'like', 'Production Report']]
template = self.env['email.template'].search(domain)[0]
template.send_mail(self.id, True)
执行该方法后,它会提供此回溯
2016-11-03 17:35:15,158 4912 ERROR sintramdb openerp.addons.base.ir.ir_cron: Call of self.pool.get('production.ouvrages').send_mails(cr, uid, *()) failed in Job 9
Traceback (most recent call last):
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\openerp\addons\base\ir\ir_cron.py", line 138, in _callback
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\.\openerp\api.py", line 268, in wrapper
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\.\openerp\api.py", line 372, in old_api
File "C:\Users\3D SKILLS\AppData\Local\OpenERP S.A.\Odoo\addons\8.0\production\models.py", line 347, in send_mails
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\.\openerp\api.py", line 266, in wrapper
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\.\openerp\api.py", line 549, in new_api
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\openerp\addons\email_template\email_template.py", line 558, in send_mail
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\.\openerp\api.py", line 268, in wrapper
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\openerp\addons\email_template\email_template.py", line 595, in generate_email
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\.\openerp\api.py", line 268, in wrapper
File "C:\Program Files (x86)\Odoo 8.0-20160929\server\openerp\addons\email_template\email_template.py", line 484, in generate_email_batch
AttributeError: 'bool' object has no attribute 'lang'
如果我用@ api.one或@ api.multi替换@ api.model,我会收到以下错误
TypeError: old_api() takes at least 4 arguments (3 given)
注意:使用@ api.one或@ api.multi注释,如果我使用单击按钮来调用该方法,它就会完美无缺 .
2 回答
试试这个
如果这不起作用尝试此解决方案 .
首先感谢各位大家的快速回复!!
在我尝试修复后,我仍然无法解决问题 . 所以我决定深入研究email_template插件中的email_template.py文件,在遇到一些错误之后我终于有了一些工作 . 贝娄是我的解决方案(当然是旧的api风格)
我希望它会帮助别人