繁体   English   中英

如何在odoo中自动将一个one2many字段值填充到另一个one2many字段

[英]How to automatically fill a one2many field values to another one2many field in odoo

我有两个 one2many 字段,它们引用一个模型,存在于不同的模型中。

IE,

    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中创建记录。 在这个模型中有一个按钮。 单击该按钮时,我需要将 fila 字段的所有值复制到 modelb 的filb字段。 我怎样才能做到这一点。

您需要使用One2many 值填充

XML 代码

<button name="copy2b" type="object" string="COPY"/>  

蟒蛇代码

@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`
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 字段中获取产品。 “记录在 ids”这里 ids 是对应的发票。 然后我使用“记录”循环通过发票,因此我可以访问发票的 invoice_line_ids one2many 字段。 “inv_products”是我在同一模型中的另一个 one2many 字段,即“cron.invoice”。 在写入同一模型之前,我曾使用 create 方法创建一些字段。 然后我可以使用 search() 方法。 这将返回所有装箱记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM