1

我是 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>

招标管理.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 代码写入电子邮件模板时,我会收到以下错误。

错误信息:

在此处输入图像描述

请帮助我提出您的建议以及如何在电子邮件模板中获取完整网址。在 XML odoo 元素中被删除,因为它没有在上面的代码中显示。

4

1 回答 1

3

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>

招标管理.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 并在您的模型中创建这样的方法..我希望它会有所帮助..

于 2019-03-01T12:11:34.110 回答