我有两个one2many字段,它存在于单个模型中,存在于不同的模型中。
即
class modelA(models.Model):
_name = 'modela'
fila = fields.One2many('main','refa')
class moddelB(models.Model):
_name = 'modelb'
filb = fields.One2many('main','refb')
class main(models.Model):
_name = 'main'
name = fields.Char('Name')
date = fields.Date('Date')
refa = fields.Many2one('modela')
refb = fields.Many2one('modelb')
我将在 modela 中创建记录。在这个模型中有一个按钮。点击该按钮后,我需要将所有的细丝值复制到 modelb 的filb字段。我怎么能这样做。
答案 0 :(得分:1)
XML代码
<button name="copy2b" type="object" string="COPY"/>
Python代码:
@api.multi
def copy2b(self):
for record in self:
filb_values = [(0, 0, {'name': line.name, 'date': line.date}) for line in record.fila]
vals = {'filb': filb_values}
# Just pass these values to `create` or `write` method to save them on `modelb`
答案 1 :(得分:0)
for record in ids:
field_vals=[(0,0,{'product_name':line.product_id.name,'qty':line.quantity}) for line in record.invoice_line_ids]
vals={'inv_products':field_vals}
my_invoices=self.env["cron.invoice"].search([])
my_invoices.write(vals)
为我工作。 在这里,我从account.invoice模型的invoice_line_ids字段获取产品。 “用于记录ID” 这里的id是对应的发票。 然后我使用“记录”遍历发票,因此可以访问invoice_line_ids一个发票的许多字段。 “ inv_products”是我在同一模型中的另一个one2many字段,即“ cron.invoice”。 在写入同一模型之前,我曾使用create方法创建一些字段。那么我可以使用search()方法。它将返回所有创建的记录。