预期单例错误 "for" 循环 - Odoo 服务器操作

Expected singleton Error "for" loop - Odoo server actions

我正在使用 odoo 网络 UI。

我正在 sale.order 表单中创建一个新按钮来创建 RFQ。

创建 RFQ 的服务器操作运行良好,但不适用于 one2many order_line 字段。

我收到预期的单例错误

raise ValueError("Expected singleton: %s" % record)
    ValueError: <class 'ValueError'>: "Expected singleton: sale.order.line(706, 707)" while evaluating

这是我用来遍历记录的代码:

for rec in record:
  if record.order_line:
    for line in record.order_line:
      if line.id:
        action = {
        "type": "ir.actions.server",
        "id": 601,
        "context": {"active_id": record.order_line.id, "active_model": "sale.order.line"}
        }

"id":601 操作也是通过 UI 定义的:

我尝试使用这个答案:

但是还是有单例错误。

在没有单例错误的情况下循环遍历 one2many 字段 order_line 的代码中我缺少什么?

IMO 问题在这一行 "active_id": record.order_line.id

record.order_line 将有一个记录列表。你确实在它上面循环,这是正确的。 line 将代表单个记录集。所以你必须使用 line.

尝试使用以下代码:

for rec in record:
    for line in rec.order_line:
        action = {
            "type": "ir.actions.server",
            "id": 601,
            "context": {"active_id": line.id, 
                        "active_model": "sale.order.line"}
        }