获取http请求之外的odoo 10环境

时间:2017-08-12 20:22:41

标签: openerp odoo-10

需要获得一个总线。总线'我的模块post_load之后的模型。但我得到一个例外:

Traceback (most recent call last):
  File "/path/to/file.py", line 19, in __call__
    self.event_bus.sendone('channel', 'message')
  File "/opt/odoo10/addons/bus/models/bus.py", line 70, in sendone
    self.sendmany([[channel, message]])
  File "/opt/odoo10/addons/bus/models/bus.py", line 54, in sendmany
    self.sudo().create(values)
  File "/opt/odoo10/odoo/models.py", line 4870, in sudo
    return self.with_env(self.env(user=user))
  File "/opt/odoo10/odoo/api.py", line 781, in __call__
    return Environment(cr, uid, context)
  File "/opt/odoo10/odoo/api.py", line 726, in __new__
    env, envs = None, cls.envs
  File "/opt/odoo10/odoo/tools/func.py", line 111, in __get__
    return self.fget.__get__(None, owner)()
  File "/opt/odoo10/odoo/api.py", line 699, in envs
    return cls._local.environments
  File "/opt/odoo10/venv/local/lib/python2.7/site-packages/werkzeug/local.py", line 72, in __getattr__
    raise AttributeError(name)
AttributeError: environments

我尝试得到这样的环境:

registry = RegistryManager.get(db_name)
cursor = registry.cursor()
return Environment(cursor, None, context={})

那么我如何才能在http请求之外获得正确的环境?

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容获取Environment

from odoo import api, fields, models, _

env = api.Environment(cr, SUPERUSER_ID, {})
return env