Odoo:如何在Transient.Model中创建许多记录?

时间:2018-07-06 06:43:07

标签: python odoo record wizard

此代码仅创建一条记录。怎么了?

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创建专用记录。

1 个答案:

答案 0 :(得分:0)

您使用'create'方法创建新记录; TransientModel与持久性模型相同。 因此,替换

self.write(vals)

作者

self.create(vals)

你应该没事。