python - 如何在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)]})
应该是这样的。但我没有测试它。
推荐阅读
- mongodb - 如何从 dockerfile 启动 mongodb
- java - 如何在android应用程序中显示缺货项目
- azure-webjobs - 如何在 IEventProcessor.ProcessEvents 方法中处理失败消息
- powershell - 从两个对象构造自定义对象
- spring-boot - 服务器发送事件 - 几次断开连接后流未重新连接
- javascript - 如何正确定义函数的数组参数?
- python - 不理解地计算总和
- javascript - 如何使用数组包含函数检查对象数组中的对象相等性?
- apache-spark - 所需的执行程序内存高于此集群的最大阈值
- reactjs - 如何使用 webpack ManifestPlugin 为具有 2 个入口点的反应项目创建 2 个不同的 manifest.json 文件?