【发布时间】:2020-01-10 06:00:06
【问题描述】:
我将在 sale.order.line 下方的 sale.order 表单视图中添加自定义 One2many 字段。
我正在计算值 on_change 它正在显示值,但是当我要保存销售订单时,它会生成错误
ValueError:tax.lines.order_id 的值错误:sales.order(24,)
Python:
class SaleOrderInherit(models.Model):
_inherit = ['sale.order']
tax_line = fields.One2many('tax.lines', 'order_id', states={'cancel': [('readonly', True)], 'done': [('readonly', True)]}, copy=True, auto_join=True)
@on.change('partner_id')
def calculating_tax(self):
//After some code
self.env['tax.lines'].create({
'tax_id': tax['tid'],
'name': tax['name'],
'amount': tax['tax'],
'order_id': self.id
})
class TaxLines(models.Model):
_name = 'tax.lines'
tax_id = fields.Char('Tax Id')
name = fields.Char('Tax Name')
amount = fields.Char('Tax Amount')
order_id = fields.Many2one('sale.order', string='Tax Report', ondelete='cascade', index=True, copy=False)
因为我在创建订单之前创建了 one2many 字段。 但是有什么办法可以解决这个问题。
编辑:
用Charif DZ 代码替换我的代码后出错:
【问题讨论】:
-
Adam 关系不会这样工作,many2one 指向 account.move 并且 one2many 在 sale.order 中?!!
-
是的,但这是一个打字错误......
-
顺便说一句,是否可以在不使用 fkey 的情况下在 sale.order 中创建 one2many 字段?我问是因为没有 fkey 值如何与 sale.order 和 sale.order 相关,而没有确认或保存不显示其 id
-
所以它只是为了 UI 使其计算字段为 store=False 我认为它不会导致保存问题,因为数据库中不会保存任何内容,并尝试使其变得 many2many 我认为它更容易
-
终于 many2many 完成了我的工作:D