我是odoo的新手,我正在尝试在自己的自定义模板中获取完整的URL。请检查我的代码,帮助您找出我做错了什么。
mail_template_view.xml
<?xml version="1.0" encoding="utf-8"?>
<data noupdate = "0">
<record id="example_email_template" model="mail.template">
<field name="name">Example e-mail template</field>
<field name="email_from">bhuwankhadka2052@greenit.com.np</field>
<field name="subject">Congratz khadka</field>
<field name="email_to">benkhadka143@gmail.com</field>
<field name="model_id" ref="model_tender_manage"/>
<field name="auto_delete" eval="True"/>
<field name="body_html">
<![CDATA[
<p>Dear ,<br/><br/>
Good job, you've just created your first e-mail template!<br/></p>
My name is Bhuwan Khadka. What about you man?
A new tender record has been created
<div>
<p>Please check the link below for more details:</p>
% set website_url = object.env['ir.config_parameter'].sudo().get_param('web.base.url')
Your Odoo domain is: <b><a href="${website_url}">${website_url}</a></b><br>
</div>
Regards,<br/>
Bhuwan Khadka
]]>
</field>
</record>
</data>
tendermanage.py
@api.model
def create(self,vals):
res = super(TenderManage,self).create(vals)
self.task_send_mail()
return res
上面的代码创建新记录并触发自动电子邮件功能
@api.multi
def task_send_mail(self):
template_email = self.env["mail.template"].search([('name','=','Example e-mail template')]).id
self.env["mail.template"].browse(template_email).sudo().send_mail(self.id, force_send=True)
以上代码发送电子邮件
如果我从XML文件中删除了URL代码,则电子邮件会自动发送而没有任何错误,但是当URL代码写在电子邮件模板中时,我会收到以下错误消息。
错误消息:
请帮助我提出您的建议以及如何在电子邮件模板中获取完整的URL。在XML中,odoo元素已删除,因为上面的代码中未显示该元素。
答案 0 :(得分:0)
mail_template_view.xml
<div>
<p>Please check the link below for more details:
Your Odoo domain is: <b><a href="${object.get_full_url()}">Click Here</a></p>
</div>
tendermanage.py
@api.multi
def get_full_url(self):
self.ensure_one()
base_url = self.env["ir.config_parameter"].get_param("web.base.url")
url_params = {
'id': self.id,
'view_type': 'form',
'model': 'your_model',
'menu_id': self.env.ref('module_name.menu_record_id').id,
'action': self.env.ref('module_name.action_record_id').id,
}
params = '/web?#%s' % url_encode(url_params)
return base_url + params
更改邮件模板div并在模型中创建类似的方法。 我希望这会有所帮助。