Я работаю над проектом 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)
После выполнения метода он дает этому TraceBack
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.model на @ api.one или @api .multi я получаю следующую ошибку
TypeError: old_api() takes at least 4 arguments (3 given)
примечания: с @ api.one или @ api.multi аннотации это wokrs прекрасно, если я использовать кнопку мыши для вызова метода.
DEF send_mails (сг, UID, контекст = None): домен = [[» name ',' like ',' Production Report ']] template = self.pool.get (' email.template '). search (domain) [0] template.send_mail (cr, uid, [self.id] , True, context = None) –
Попробуйте использовать старый api. Это может быть самое быстрое решение. Хотя раздражает. –
Если вы посмотрите файл email_template.py, однако он ищет атрибут lang шаблона, который, по его мнению, является логическим в приведенной выше ошибке. Я бы предположил, что это ложь. Возможно, шаблон не передается методу. –