odoo - ValueError:在系统中找不到外部 ID:module_name.crm_lead_mail_template
问题描述
我是odoo的初学者。谁能帮我找到下面提到的问题的解决方案?
大家好,我创建了一个电子邮件模板来在此字段更改时触发邮件通知,因此我创建了此功能,但是当我选择标记为赢得或任何字段时,我无法处理此我收到错误
lead_status = fields.Many2one("crm.stage","Lead Status",track_visibility='onchange',default=_get_default_lead_status)
@api.multi
def write(self, vals):
if 'lead_status' in vals and self.ids:
for rec in self:
template_id =self.env.ref('crm.lead.extended.crm_lead_mail_template').id
#template = self.env.ref('crm.lead.extended.crm_lead_mail_template')
#template = self.env.ref('module_name.crm_lead_mail_template')
template.send_mail(rec.id, force_send=True)
return super(crm_extended, self).write(vals)
mail template :
<?xml version="1.0" ?>
<odoo>
<data noupdate="1">
<record id="crm_lead_mail_template" model="mail.template">
<field name="name">CRM-OPPORTUNITY_MODIFIED: Send by email</field>
<field name="model_id" ref="crm_extended.model_crm_lead_extended"/>
<field name="email_from">guna19may2015@gmail.com</field>
<field name="email_to">${object.account_manager.email}</field>
<field name="subject">Opportunity Record Has Been modified</field>
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
Dear ${object.account_manager.display_name}
<br /><br />
Opportunity ${object.customer_name.display_name} has been Modified. .
<br /><br />
Thank you
</p>
</div>
</field>
</record>
</data>
</odoo>
when i change select mark as won or any state it shows me below error
error :
Error:
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo/odoo-12.0/odoo/tools/cache.py", line 88, in lookup
r = d[key]
File "/opt/odoo/odoo-12.0/odoo/tools/func.py", line 69, in wrapper
return func(self, *args, **kwargs)
File "/opt/odoo/odoo-12.0/odoo/tools/lru.py", line 44, in __getitem__
a = self.d[obj].me
KeyError: ('ir.model.data', <function IrModelData.xmlid_lookup at 0x7f99c64197b8>, 'crm.lead.extended.crm_lead_mail_template')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/odoo/odoo-12.0/odoo/http.py", line 656, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 314, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/opt/odoo/odoo-12.0/odoo/tools/pycompat.py", line 87, in reraise
raise value
File "/opt/odoo/odoo-12.0/odoo/http.py", line 698, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 346, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/odoo-12.0/odoo/service/model.py", line 98, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 339, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 941, in __call__
return self.method(*args, **kw)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 519, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/odoo-12.0/addons/web/controllers/main.py", line 966, in call_button
action = self._call_kw(model, method, args, {})
File "/opt/odoo/odoo-12.0/addons/web/controllers/main.py", line 954, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/odoo/odoo-12.0/odoo/api.py", line 759, in call_kw
return _call_kw_multi(method, model, args, kwargs)
File "/opt/odoo/odoo-12.0/odoo/api.py", line 746, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/opt/odoo/odoo-12.0/crm_internal_new/crm_extended/models/crm_lead_extended.py", line 122, in action_convert_nurture
self.write({'lead_status': self.nurture_id})
File "/opt/odoo/odoo-12.0/crm_internal_new/crm_extended/models/crm_lead_extended.py", line 88, in write
template_id =self.env.ref('crm.lead.extended.crm_lead_mail_template').id
File "/opt/odoo/odoo-12.0/odoo/api.py", line 864, in ref
return self['ir.model.data'].xmlid_to_object(xml_id, raise_if_not_found=raise_if_not_found)
File "/opt/odoo/odoo-12.0/odoo/addons/base/models/ir_model.py", line 1443, in xmlid_to_object
t = self.xmlid_to_res_model_res_id(xmlid, raise_if_not_found)
File "/opt/odoo/odoo-12.0/odoo/addons/base/models/ir_model.py", line 1427, in xmlid_to_res_model_res_id
return self.xmlid_lookup(xmlid)[1:3]
File "<decorator-gen-25>", line 2, in xmlid_lookup
File "/opt/odoo/odoo-12.0/odoo/tools/cache.py", line 93, in lookup
value = d[key] = self.method(*args, **kwargs)
File "/opt/odoo/odoo-12.0/odoo/addons/base/models/ir_model.py", line 1416, in xmlid_lookup
raise ValueError('External ID not found in the system: %s' % xmlid)
ValueError: External ID not found in the system: crm.lead.extended.crm_lead_mail_template
SOMEONE HELP ME WITH THIS I HAVE TRIED DIFFERENT FUNCTIONS AS BELOW BUT STILL GETTING THE SAME ERROR:
#@api.multi
#def write(self, vals):
#if 'lead_status' in vals and self.ids:
#for rec in self:
#template=self.env.ref('crm_lead_extended.crm_lead_mail_template')
#template = self.env.ref('mail_template_demo.example_email_template')
#template = self.env.ref('crm.lead.extended.crm_lead_mail_template')
#template = self.env.ref('module_name.crm_lead_mail_template')
#template.send_mail(rec.id, force_send=True)
#return super(crm_extended, self).write(vals)
@api.multi
def write(self, vals):
res = super(crm_extended, self).write(vals)
if vals.get('lead_status'):
template_id = self.env.ref('crm_lead_extended.crm_lead_mail_template')
for lead in self:
template_id.send_mail(lead.id)
return res
#@api.multi
#def submit_expenses(self):
#self.write({'state': 'mgr_approval'})
#template = self.env.ref('reimbursement.reim_mgr_approve_email_templates')
#self.env['mail.template'].browse(template.id).send_mail(self.id)
#def crm_send_mail(self):
#print("send_mail when lead_status changes")
#template_id =self.env.ref('crm.lead.extended.crm_lead_mail_template').id
#self.env['mail.template'].browse(template_id).send_mail(self.id,force_send=True)
解决方案
方法中使用的外部 idsend_mail
错误,必须使用module_name.template_id
.
正如我在日志错误中看到的那样,您的模块名称crm_extended
和模板 ID 是crm_lead_mail_template
,因此您必须使用以下外部 ID 引用模板:
crm_extended.crm_lead_mail_template
推荐阅读
- c++ - 交换互斥锁
- javascript - how to open result in new tab with autocomplete search jquery?
- user-interface - 创建交互式时间线
- r - 将变量作为字符传递给函数
- python - Python文本在不同文件夹中的.txt文件中搜索并打印文件和文件夹的名称
- r - Remove a line in an HTML file using R grepl
- flask - 使用 Flask 应用程序查询的数据未显示在 HTML 中
- reactjs - 通过 GitLab Auto DevOps 将生产环境 create-react-app 部署到 GKE
- mysql - 从mysql中的两个不同表中获取数据
- git - 撤消 git 命令——git checkout——