Ejecutar un método desde shell de odoo

$ python3 /usr/bin/odoo shell -d odoodb --no-http
>> self.env['custom_app.your_model'].hi('simpson_homer')

Lo anterior asume que tenemos un método en nuestro modelo:

from odoo import models, fields, api
class YourModel(models.Model):
   def hi(self, name):
      print("hi " + name)

Si modificamos nuestro modelo y deseamos ejecutar el método tomando en cuenta los nuevos cambios, podemos hacerlo de la siguiente forma:

python3 /usr/bin/odoo -d odoodb -u melimgt --workers=0 --no-http --i18n-overwrite --stop-after-init && echo "self.env['custom_app.your_model'].hi('simpson_homer')" |  python3 /usr/bin/odoo shell -d odoodb --no-http

Si deseamos que los cambios en los registros tengan impactos en la tabla de la base de datos, necesitamos hacer commit, es decir: env.cr.commit()

python3 /usr/bin/odoo -d odoodb -u melimgt --workers=0 --no-http --i18n-overwrite --stop-after-init && echo "env['custom_app.your_model'].create({'name':'Gus'});env.cr.commit()" |  python3 /usr/bin/odoo shell -d odoodb --no-http

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *