Как принудительно удалить записи из строк в odoo? - PullRequest
0 голосов
/ 16 июня 2020

что-то не так при перемещении учетной записи, так как добавление учетной записи analyti c в записи счетов поставщиков, и мне нужно l oop во всех строках в перемещениях учетной записи и удалить учетную запись analyti c из всех строк этим бит кода

class NewModule(models.Model):
_inherit = 'account.move'

def analytic(self):
    all=self.env['account.move'].search([('type','=','in_invoice')])
    ana=all.line_ids.mapped('analytic_account_id')
    ana.unlink()

, но при запуске этого метода я получаю эту ошибку «Операция не может быть завершена: другая модель требует удаления записи. Если возможно, заархивируйте ее. Модель: Analyti c Строка (account.analyti c .line), Ограничение: account_analytic_line_account_id_fkey " как на изображении ниже enter image description here

в противном случае при попытке удалить учетную запись analyti c для пользовательского интерфейса он удален без каких-либо проблем, но слишком много счетов, чтобы делать это вручную

любая помощь будет оценена

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Вы пытаетесь удалить объекты analytic_account.

Вы хотите просто удалить соединения m2m.

all=self.env['account.move'].search([('type','=','in_invoice')])
all.write({'analytic_account_id':[(5, 0, 0)]})

Так должно быть. Но я не тестировал.

0 голосов
/ 16 июня 2020

у меня сработало с этим методом

def analytic(self):    
self.env['account.move'].search([('type', 'in', ('out_invoice', 'in_invoice'))]).line_ids.write({'analytic_account_id':[(5, 0, 0)]})
...