1

我创建了一条新记录,我想获取该记录的 ID。我有一个方法,我想在其中获取新创建记录的 ID。如果是真的,我想做某个动作。

@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)

这是我的发送电子邮件功能。我想在创建记录后自动发送电子邮件。所以,我想获取最近创建的记录 ID 并将该 ID 传递给这个函数。

@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,
        'action': self.env.ref('bhuwan_module.tender_records_form').id,
        'model': 'tender.manage',
        'view_type': 'form',
        'menu_id': self.env.ref('bhuwan_module.tender_records').id,
    }
    params = '/web#%s' % url_encode(url_params)
    return base_url + params

这个函数是从我的电子邮件模板中调用的。它应该获取新创建记录的 ID,但它没有获取这些 ID,因此渲染模板失败。

4

1 回答 1

2

它应该采用新创建记录的 ID

但是您没有共享处理该模型新创建的记录集的代码。

要获取新创建记录的记录 ID,您可以使用评论中提到的其他创建功能。每当创建新模型时,总是会触发模型定义的创建函数。

@api.model
def create(self,vals):
  record = super(ClassName, self).create(vals)
  record.task_send_mail() ##record is the newly created record
  return record
于 2019-03-05T06:10:08.087 回答