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

时间:2019-11-01 06:45:12

标签: python odoo odoo-12

我正在使用odoo Web UI。

我正在sale.order表单中创建一个新按钮以创建询价。

用于创建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定义的: action ID 601

我尝试使用以下答案: ValueError: Expected singleton: - Odoo v8

但仍然存在单例错误。

我在代码中遗漏了什么,以便该动作在one2many字段order_line的行中循环而没有单例错误?

1 个答案:

答案 0 :(得分:2)

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"}
        }