Ожидаемая ошибка в одиночном цикле «for» - действия сервера Odoo - PullRequest
2 голосов
/ 01 ноября 2019

Я использую веб-интерфейс odoo.

Я создаю новую кнопку в форме sale.order для создания запроса.

Действие сервера для создания запроса предложения работает хорошо, но не для поля 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также определяется через пользовательский интерфейс: action ID 601

Я пытался использовать этот ответ: ValueError: Ожидаемый синглтон: - Odoo v8

Но все еще есть ошибка синглтона.

Чего мне не хватает в коде для действия по циклу между строками поля one2many order_line без единой ошибки?

1 Ответ

2 голосов
/ 01 ноября 2019

ИМО проблема в этой строке "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"}
        }
...