Методы Onchange и зависит от self, содержащего NewObjectId в качестве записей - PullRequest
0 голосов
/ 16 марта 2019

Насколько я понимаю, выполнение методов с декораторами @onchange и @depends, почти всегда аргумент 'self' в обоих случаях представляет собой набор записей в этом формате:

res.partner (1, 2, 3) (например, в данном случае для модели res.partner)

Что представляет собой записи, к которым будут применены декорированные методы.

В тех случаях, когда ORM не восстанавливает идентификатор в базе данных, это происходит потому, что это элемент, который еще не был записан.

Это то, что я узнал из книг о теории Оду, и до сих пор это работало для меня.

Две недели назад, после обновления сторонних модулей, я начал замечать, что в моих собственных модулях аргумент self всегда возвращал меня (например):

res.partner (объект odoo.models.NewId по адресу 0x7f8c0f604768,)

И так для каждого из методов с этими декораторами.

Это для меня означает, что он не восстанавливает идентификатор в базе данных, а только возвращает свой адрес в памяти.

Я перепробовал много вещей, чтобы удалить все собственные модули и повторно клонировать их, или создать новую базу данных и установить только собственные модули или создать новую базу, но только с модулями Odoo и использовать чистый модуль, созданный команда scaffold или, удалите IDE и переустановите ее, пока не протестируете экземпляр на другом компьютере и не установите мои собственные модули. Но я всегда получаю один и тот же результат.

До этих двух недель методы в моих собственных модулях использовали самость правильно. И единственные обновления были для сторонних модулей.

Другой интересный момент заключается в том, что как сторонние модули, так и модули Odoo действительно восстанавливают набор записей в собственной переменной (в соответствии с теорией), но не для моих собственных модулей (даже для основного встроенного модуля). используя команду scaffold).

Мои вопросы: Почему переменная self использует запись таким образом? - Как я могу исправить эту ошибку, если она была?

Большое спасибо заранее !! :)

1 Ответ

0 голосов
/ 18 марта 2019

Это нормально для onchange методов для меня сейчас. Но в зависимости от методов я понял, что у переменной self всегда есть набор записей. На изображениях показан простой модуль, созданный с помощью команды scaffold и использующий систему отладки в Pycharm. Я только что остановился на методе с @depends decorator, и вот результат.

Pycharm environment

server backend

...