首页 > 解决方案 > 如何在odoo中强制删除行中的记录?

问题描述

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

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.analytic.line),约束:account_analytic_line_account_id_fkey”如下图所示 在此处输入图像描述

否则,如果尝试删除 UI 的分析帐户,它会毫无问题地删除,但需要手动执行的账单太多

任何帮助将不胜感激

标签: pythonodooodoo-13

解决方案


您正在尝试删除 analytic_account 对象。

您只想删除 m2m 连接。

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

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


推荐阅读