我正在尝试更新
onchange
方法中的 One2many 字段。
正如文档所说,我使用的是
update
方法,而不是像 create
这样的标准 CRUD 方法。
我有这段代码:
class HrExpenseSheet(models.Model):
_inherit = "hr.expense.sheet"
@api.onchange('employee_id')
def _update_expense_ids(self):
# define variables ...
values = {
'product_id': product_id,
'name': name,
'product_uom_id': product_uom_id,
'unit_amount': unit_amount,
'quantity': quantity,
'total_amount': total_amount
}
self.update({'expense_line_ids':[(0, 0, values)]})
它几乎可以工作了。我将我的记录添加到表中,但之后整个表就中断了......当此代码执行时,会发生一些事情:
unit_amount
未填写 - 显然应该填写 psycopg2.errors.InvalidTextRepresentation: invalid input syntax for type integer: "virtual_2509" LINE 1: ...mpany_id" = 1)) AND (("hr_expense"."id" not in ('virtual_2...
到底发生了什么。我在 8.0 版本上运行相同的代码没有问题,但这在 13.0 版本上不起作用。
我有一个非常类似的问题,但这是因为我使用
[(0, None, {'a': 1})
语法在 M2M 字段中“创建”记录。解决了使用 model.create([{'a': 1}])
创建线条的问题