На самом деле это классическая ошибка, возникающая при расширении модели res.partner
новыми полями.
При запуске сервера Odoo все модули Python для модулей будут «загружаться», так что, конечно, ваши новые поля должны быть на res.partner
, тоже.Но это только на стороне Python или лучше на самом приложении.Теперь попытка использовать приложение или «загрузить что-либо в веб-клиенте Odoo» затем попытается загрузить данные из базы данных, где новые поля не имеют соответствующих столбцов.
Например, логин.При входе в систему Odoo загрузит пользователя, который входит в систему. Модель res.users
наследует всю модель res.partner
, поэтому Odoo пытается загрузить res.partner
данные из базы данных.И выдайте ошибку.
Это также может произойти, если вы уже вошли в систему. Например, в форме представления модели с болтовней.Болтовня загружает подписчиков, которые являются партнерами, поэтому выдает ошибку.
Что вы можете сделать, чтобы это исправить?
Обновите модуль при запуске сервера
с параметром -u
(и если в системе несколько баз данных с -d
)
odoo -c <path_to_config> -u my_module -d my_database
Если это невозможно ,
например, в продуктивных системах или из-за того, что Odoo запускается как служба, попробуйте запустить второй экземпляр, который просто обновит модуль и сразу же остановится.
odoo -c <path_to_config> -u my_module -d my_database --max-cron-threads=0 --stop-after-init --no-xmlrpc
Это похоже на «самоуничтожающийся» безголовый экземпляр Odoo.Параметр --no-xmlrpc
будет равен --no-http
в Odoo V11 +.
Скажите Odoo в базе данных обновить модуль / приложение.
UPDATE ir_module_module set state = 'to upgrade' where name = 'my_module';
После этого просто перезапустите Odoo.
Или хитрый способ :
Просто зайдите в меню приложений и откройте свой модуль / приложение.Перезапустите Odoo и обновите модуль / приложение.Это самый быстрый способ, но вы догадываетесь об этом, иногда вы забудете это сделать.И это работает только до того, как вы получите ошибку; -)