【问题标题】:How to force remove records form lines in odoo?如何在odoo中强制删除行中的记录?
【发布时间】:2020-06-16 16:19:52
【问题描述】:

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

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 的分析帐户,它会在没有任何问题的情况下删除,但需要手动执行的账单太多

任何帮助将不胜感激

【问题讨论】:

    标签: python odoo odoo-13


    【解决方案1】:

    您正在尝试删除 analytic_account 对象。

    您只想删除 m2m 连接。

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

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

    【讨论】:

      【解决方案2】:

      这个方法对我有用

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

      【讨论】:

        猜你喜欢
        • 2022-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-19
        • 1970-01-01
        • 2017-12-03
        • 1970-01-01
        相关资源
        最近更新 更多