如何强制删除odoo中的记录表格行?
How to force remove records form lines in 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 的分析帐户,它会毫无问题地删除,但账单太多,无法手动完成
任何帮助将不胜感激
您正在尝试删除 analytic_account 个对象。
您只想删除 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)]})
在将分析帐户添加到供应商账单的日记项目时,帐户移动发生了一些错误,我需要循环帐户移动中的所有行,并通过这段代码从所有行中删除分析帐户
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 的分析帐户,它会毫无问题地删除,但账单太多,无法手动完成
任何帮助将不胜感激
您正在尝试删除 analytic_account 个对象。
您只想删除 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)]})