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