Odoo: Как создать много записей в Transient.Model? - PullRequest
0 голосов
/ 06 июля 2018

Этот код создает только одну запись. Что не так?

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 голосов
/ 06 июля 2018

Вы используете метод 'create' для создания новых записей; для TransientModel это то же самое, что и для постоянной модели. Итак, замените

self.write(vals)

от

self.create(vals)

и с тобой все будет в порядке.

...