如何在odoo中强制从行中删除记录?

2024-06-15 17:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

在将分析帐户添加到供应商账单的日记账项时,帐户移动中发生了错误,我需要在帐户移动中的所有行上循环,并通过这段代码从所有行中删除分析帐户

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()

但是当这个方法运行时,我得到了一个错误,操作无法完成:另一个模型要求删除记录。如果可能的话,将其存档。 模型:分析行(account.analysis.Line),约束:account\u analysis\u Line\u account\u id\u fkey“如下图所示 enter image description here

否则,如果试图删除UI的分析帐户,它将被删除,没有任何问题,但有太多的账单无法手动执行

任何帮助都将不胜感激


Tags: 模型selfidmove错误line帐户account
2条回答

您正在尝试删除帐户对象

您只想删除m2m连接

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

应该是这样的。但我没有测试它

这种方法对我很有效

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

相关问题 更多 >