Насколько я понимаю, выполнение методов с декораторами @onchange и @depends, почти всегда аргумент 'self' в обоих случаях представляет собой набор записей в этом формате:
res.partner (1, 2, 3) (например, в данном случае для модели res.partner)
Что представляет собой записи, к которым будут применены декорированные методы.
В тех случаях, когда ORM не восстанавливает идентификатор в базе данных, это происходит потому, что это элемент, который еще не был записан.
Это то, что я узнал из книг о теории Оду, и до сих пор это работало для меня.
Две недели назад, после обновления сторонних модулей, я начал замечать, что в моих собственных модулях аргумент self всегда возвращал меня (например):
res.partner (объект odoo.models.NewId по адресу 0x7f8c0f604768,)
И так для каждого из методов с этими декораторами.
Это для меня означает, что он не восстанавливает идентификатор в базе данных, а только возвращает свой адрес в памяти.
Я перепробовал много вещей, чтобы удалить все собственные модули и повторно клонировать их, или создать новую базу данных и установить только собственные модули или создать новую базу, но только с модулями Odoo и использовать чистый модуль, созданный команда scaffold или, удалите IDE и переустановите ее, пока не протестируете экземпляр на другом компьютере и не установите мои собственные модули. Но я всегда получаю один и тот же результат.
До этих двух недель методы в моих собственных модулях использовали самость правильно. И единственные обновления были для сторонних модулей.
Другой интересный момент заключается в том, что как сторонние модули, так и модули Odoo действительно восстанавливают набор записей в собственной переменной (в соответствии с теорией), но не для моих собственных модулей (даже для основного встроенного модуля). используя команду scaffold).
Мои вопросы:
Почему переменная self использует запись таким образом?
- Как я могу исправить эту ошибку, если она была?
Большое спасибо заранее !! :)