Odoo 如何删除记录而不立即影响数据库

Odoo 如何删除记录而不立即影响数据库,odoo,odoo-12,Odoo,Odoo 12,在一个示例中,我正在寻找BaseModel.new方法,其行为类似于ORM中的create方法,但不在数据库中写入更改 是否存在相同的方法,但其作用类似于取消链接?我想在onchange调用中从我的记录集中删除一条记录。我不希望立即删除记录,但仅当用户按下Save按钮时 提前非常感谢 有关我为什么需要此功能的更多信息: 我正在使用Odoo的stock模块。在拣选中,我想动态更改保留的产品(通过唯一序列号跟踪),这意味着添加一些新的移动行并删除一些现有的 我不能简单地更改lot\u id,因为一

在一个示例中,我正在寻找
BaseModel.new
方法,其行为类似于ORM中的
create
方法,但不在数据库中写入更改

是否存在相同的方法,但其作用类似于取消链接?我想在
onchange
调用中从我的记录集中删除一条记录。我不希望立即删除记录,但仅当用户按下
Save
按钮时

提前非常感谢


有关我为什么需要此功能的更多信息:

我正在使用Odoo的
stock
模块。在
拣选
中,我想动态更改保留的产品(通过唯一序列号跟踪),这意味着添加一些新的
移动行
并删除一些现有的

我不能简单地更改
lot\u id
,因为一些
move\u line
s与该
lot\u id
一起的
s可能会保留在另一个
Picking
中(或者至少,我没有找到如何整洁地执行此操作)


通过在我的
onchange
方法中更改
lot\u id
或执行
selected\u move\u id.move\u line\u id.new({…})
,我可以添加新的。现在我想删除我不再需要的现有的。我希望以相同的方式删除它们,就像用户按下相应行上的
trash
图标一样。

我在
Odoo 12
中尝试了类似的方法,效果很好:

#我更改了测试不同案例的合作伙伴
@api.onchange('partner_id'))
def onchage_p(自身):
“”“移除移动少于5个单位”“”
#创建空记录集以保存有效记录
new_recs=self.env['stock.move']
对于移入self.move\u id\u(不带\u包):
#仅保留大于5的记录
如果移动产品数量>5:
新记录+=移动
#将其重新分配给字段。
self.move\u id\u without\u package=新建\u记录
当我调试
write
调用
stock.picking
the
delete cammand
已为所有保存的移动传递:
[…,[2,移动id,False]]

框架能够检测到记录已从原始
记录集中删除,这就是添加该命令的原因


因此,基本思想是创建一个新的
记录集
,其中包含有效的记录,并将其重新分配给one2many字段。

用户只按
保存
是什么意思?我的意思是,当您编辑包含该记录集的模型时,您可以在页面左上角进行编辑,然后保存或放弃。例如,如果我编辑一个模型,然后我按下列表的垃圾箱图标,然后单击“放弃”按钮,删除的行重新出现(它在数据库中未被删除)。我刚刚编辑了我的问题,是否更清楚?你的意思是当你编辑一个
x到多个字段时
?!!阿福,奥多没有这样的东西。但我不太明白你为什么需要这样的东西。你能详细解释一下为什么需要这个吗?这就是我想要的,但是这个解决方案会清空我的列表,因为它在做作时会丢失所有其他的
move\u line\u id
。这就是为什么我在寻找类似于
new
(相当于
=[(0,'.'',{…})]的东西的原因
。有趣的问题嗯,我会尝试找到另一个解决方案^^。如果记录没有保存,记录也会保存。记录被编辑了?!很多是的,我知道^^^非常感谢你的时间!你能给我代码中的部分吗ḧ当我们点击垃圾箱图标时,ich被调用?我找不到它(我可能遗漏了一些琐碎的东西)。也许这会帮助我理解它是如何工作的?