active_id 在 Odoo 13 中无法正常工作。没有它如何工作?
The active_id is not working properly in Odoo 13. How to work without it?
这就是问题,每个需要使用active_id
的人都会遇到这个问题:https://github.com/odoo/odoo/issues/39070
总而言之,在自定义的 stock.production.lot
视图中,我有这个:
<field name="outgoing_moves" context="{'default_lot_id': active_id}"/>
其中 outgoing_moves
是一个 One2many 字段。我只想在每次用户添加新的传出移动时自动填写字段 lot_id
和当前打开的手数。
问题是,如果我从其他模型视图(例如通过快捷按钮)打开这个批次视图,active_id
不会更新,并给我带来以前模型的 ID。
例如,我在客户 133 中单击一个按钮后打开了批次 61。当我尝试在 One2many 字段中添加新的传出移动时,出现错误“ID 为 133 的批次不存在”。这是Odoo 13.0版本的一个bug,目前还没有修复。
他们在GitHub 线程中提出的解决方案是使用active_ids[0]
而不是active_id
:
Notice that is does use active_ids[0], which works even in the example you provided.
<field name="outgoing_moves" context="{'default_lot_id': active_ids[0]}"/>
好吧,每个人似乎都对这个解决方案感到满意,但它对我来说不起作用。我很确定我的代码已正确更新并且我正在使用 active_ids[0]
,但我总是得到错误的 ID。
我读过的另一种解决方案是使用可靠 ID,这意味着记录(在我的例子中很多)本身的 ID。我已经尝试并工作了,但有时,在重新启动 Odoo 后,每次单击 Odoo 中的任何内容时,我都会收到 JavaScript 错误。当我删除 outgoing_moves
:
的上下文时错误消失
<field name="id" invisible="1"/>
<field name="outgoing_moves" context="{'default_lot_id': id}"/>
有没有人遇到过这个问题并找到了解决方法?
lot_id
是 One2many 字段的逆字段吗?
您不需要在 One2many 字段模型的 list/form 视图中显示甚至定义此字段,因为它会在创建时由 Odoo 自动填充。
但是,如果它是默认视图(在其他地方使用),请创建一个继承视图,该视图会删除该字段并将此新视图定义为已用视图,尤其是在您需要此视图的地方。
这不是 active_id
问题的解决方案。我还不知道一个。
这就是问题,每个需要使用active_id
的人都会遇到这个问题:https://github.com/odoo/odoo/issues/39070
总而言之,在自定义的 stock.production.lot
视图中,我有这个:
<field name="outgoing_moves" context="{'default_lot_id': active_id}"/>
其中 outgoing_moves
是一个 One2many 字段。我只想在每次用户添加新的传出移动时自动填写字段 lot_id
和当前打开的手数。
问题是,如果我从其他模型视图(例如通过快捷按钮)打开这个批次视图,active_id
不会更新,并给我带来以前模型的 ID。
例如,我在客户 133 中单击一个按钮后打开了批次 61。当我尝试在 One2many 字段中添加新的传出移动时,出现错误“ID 为 133 的批次不存在”。这是Odoo 13.0版本的一个bug,目前还没有修复。
他们在GitHub 线程中提出的解决方案是使用active_ids[0]
而不是active_id
:
Notice that is does use active_ids[0], which works even in the example you provided.
<field name="outgoing_moves" context="{'default_lot_id': active_ids[0]}"/>
好吧,每个人似乎都对这个解决方案感到满意,但它对我来说不起作用。我很确定我的代码已正确更新并且我正在使用 active_ids[0]
,但我总是得到错误的 ID。
我读过的另一种解决方案是使用可靠 ID,这意味着记录(在我的例子中很多)本身的 ID。我已经尝试并工作了,但有时,在重新启动 Odoo 后,每次单击 Odoo 中的任何内容时,我都会收到 JavaScript 错误。当我删除 outgoing_moves
:
<field name="id" invisible="1"/>
<field name="outgoing_moves" context="{'default_lot_id': id}"/>
有没有人遇到过这个问题并找到了解决方法?
lot_id
是 One2many 字段的逆字段吗?
您不需要在 One2many 字段模型的 list/form 视图中显示甚至定义此字段,因为它会在创建时由 Odoo 自动填充。
但是,如果它是默认视图(在其他地方使用),请创建一个继承视图,该视图会删除该字段并将此新视图定义为已用视图,尤其是在您需要此视图的地方。
这不是 active_id
问题的解决方案。我还不知道一个。