我创建了一个新记录,我想获取该记录的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,因此呈现模板失败。
答案 0 :(得分:0)
它应该使用新创建的记录的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