我在 Odoo 中有一个模型来注册一些logs(Log)
和一个带有异步函数的助手class(Helper)
来接收日志上的一些数据广告寄存器,这个 _job_function 由 Cron Job 调用,如下所示:
class Log(models.Model):
_name = 'saas.autobackup'
_description = 'Description'
field1 = fields.Char()
field2 = fields.Char()
field3 = fields.Datetime()
def _job_function(self):
helper = Hekper(self, ...) #Function receive self(Log) as parameter
helper.run() #call functions
这是助手类:
class Helper():
def __init__(self, og_obj)
self.log_obj = log_obj #Receive the Log object as parameter
async def some_async_func(self):
(...) #Some async functions to get val1 and val2
self.create_log(val1,val2)
def create_log(self, val1, val2)
vals = {'field1': val1, 'field2': val1, 'field3': '2021-01-01'}
self.log_obj.create(values)
def run(self):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
future = asyncio.ensure_future(self.some_async_func())
loop.run_until_complete(future)
为了调试 propuser,我已经覆盖了创建类,以检查我是否发送了错误的数据。当作业执行并调用 create_log 函数时,程序正确进入 create 函数,我还检查了 create 中发送的数据,并验证它们是正确的,就像我在 Odoo 中尝试创建时保留的一样接口本身。“创建”按钮。但是在 Odoo 中通过创建按钮,正常创建并通过 create_log 函数我得到这个错误:
ValueError: <class 'AttributeError'>: "'tuple' object has no attribute 'cache'" while evaluating