python - 如何在odoo中获取新记录ID?
问题描述
我创建了一条新记录,我想获取该记录的 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,因此渲染模板失败。
解决方案
它应该采用新创建记录的 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
推荐阅读
- leaflet - 如何在标记定义中使用传单图标定义?
- cube.js - 无法使用 cube.js 连接到 mongodb attlas
- wildfly - 使用 add-user.bat/add-user.sh 在 wildfly 中添加用户不会写入 mgmt-users.properties
- c++ - 有没有一种理想的方式来避免这种裸新的使用?
- mysql - 通过 React 和 Node.js 将未定义的值传递给 MySQL 数据库
- reactjs - React & Searchkit 显示更多按钮而不是默认分页
- c - connect() 在使用 IPv4 协议的套接字编程中失败
- html - 使用 display flex 在左侧放置一个 div,在右侧放置两个 div
- python - NoReverseMatch at / Reverse for 'article' with arguments '('',)' 未找到。尝试了 1 种模式:['blog/(?P
[0-9]+)$'] - linux - 如何在netbeans(linux)中将JFrame表单设置为主类