python - Odoo:如何在 Transient.Model 中创建许多记录?
问题描述
此代码仅创建一条记录。怎么了?
class PartnerTagCreate(models.TransientModel):
""" Choose tags to be added to partner."""
_name = 'partner.tags.create'
_description = __doc__
market_id = fields.Many2one('partner.tags', string='Market Tag')
application_id = fields.Many2one('partner.tags', string='Application Tag')
partner_id = fields.Integer()
@api.multi
def create_contact_tag(self):
for record in self.env['sale.order.line'].browse(self._context.get('active_ids', [])):
vals = {}
vals['partner_id'] = record.order_partner_id
self.write(vals)
return True
order_partner_id
在打开向导之前,我需要此功能为我选择的每个记录创建一个记录...
如何做到这一点?
这是我的新代码(函数)...
def create_contact_tag(self):
sale_order_line_ids = self.env['sale.order.line'].browse(self._context.get('active_ids', []))
for partner in sale_order_line_ids:
values = {}
values['partner_id'] = partner.order_partner_id
self.create(values)
return {}
这将为marketing_id 和/或application_id 创建一个记录,并为记录中的每个partner_id 创建一个专用记录。
解决方案
您使用“创建”方法创建新记录;TransientModel 与持久模型相同。所以,更换
self.write(vals)
经过
self.create(vals)
你应该没事。
推荐阅读
- reactjs - 使用 jwt 授权反应 js 在标头中添加授权时遇到问题?
- c++ - C/C++ 一次读取二进制文件(浮点数)
- flutter - 如何使一个小部件成为颤振大师
- javascript - 如何从 node.js、MongoClient 函数中返回布尔值?
- html - 导航栏没有向右移动?
- node.js - 授权中间件 JWT 混淆
- java - 将 HQL 继承层次从子类提升到超类
- python - 查找给定列表中的最大值
- laravel - 使用 laravel 8 测试上传文件,assertExists 不起作用
- node.js - .env 文件不在带有 Gitlab 的 Heroku CI/CD 中