Odoo Ghost Record - PullRequest
       8

Odoo Ghost Record

0 голосов
/ 10 декабря 2018

Когда я выполняю поиск моделей в Odoo, я случайно сталкиваюсь с дополнительной записью, которой нет в базе данных.Например:

Предположительно, этот оператор поиска возвращает только одну запись

mytable = self.env["my.table"]
mydata = mytable.search([('something_uid', '=', 1)]) #this should only return one

Но когда я проверяю на mydata.id, я получаю одиночную ошибку, потому что результат не один.Есть дополнительная запись, что, когда я дважды проверяю, ее нет в таблице.

Это потому, что в моем коде есть ошибка?Я обнаруживаю это несколько раз.Но я не могу указать, где проблема.

Обновление

Я загрузил код на pastebin.com, пожалуйста, посмотрите https://pastebin.com/gk0rDfuy

PS.Я использую Odoo 8, но мне любопытно, если более поздние версии Odoo имеют подобный опыт

1 Ответ

0 голосов
/ 13 декабря 2018

Кажется, ORM Odoo использует своего рода транзакцию для своих операций с базой данных.Это объясняет, почему, когда я запрашиваю базу данных, пока я ставлю точку останова в коде, я не могу найти записи, на которые указывает код.

И база данных фиксирует записи только после завершения кода.Это также объясняет, почему даже если я выйду из точки останова, она не зафиксирует записи.Выход из точки останова не запускает операцию фиксации Odoo.

Проверка другой части кода решает проблему.

...