我正在使用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定义的:
我尝试使用以下答案: ValueError: Expected singleton: - Odoo v8
但仍然存在单例错误。
我在代码中遗漏了什么,以便该动作在one2many
字段order_line
的行中循环而没有单例错误?
答案 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"}
}