如何在Python中执行Odoo-8中的查询?

sol*_*g12 6 python postgresql openerp odoo odoo-8

我在课堂上有以下功能hr_evaluation_interview:

@api.onchange('evaluation_id')
def onchange_evalID(self):
    self.deadline=self.env.cr.execute('SELECT date FROM hr_evaluation_evaluation where id=119')
Run Code Online (Sandbox Code Playgroud)

注意:我只是提供id=119查询以进行测试.

当我给self.deadline=datetime.now.strftime(%Y-%m-%d %H:%M:%S")它工作正常并且deadline当字段的值evaluation_id改变时改变字段的值.再次进行测试.

我真正需要的是执行类似于我提到的查询.但是,当我执行此查询时,没有任何内容正在打印deadline.当我检查日志时,我看到了这个警告:

WARNING db_name openerp.models: Cannot execute name_search, no _rec_name defined on hr_evaluation.evaluation
Run Code Online (Sandbox Code Playgroud)

我试着在网上查看为什么这个警告,但没有得到帮助.难道我做错了什么?我怎样才能从内部执行查询@api.onchange(self)

And*_*nov 5

正如哈迪克所说,cr.execute()不会直接归还你的结果.执行查询后,需要从游标中获取值.试试这样:

@api.onchange('evaluation_id')
def onchange_evalID(self):
    self.env.cr.execute('SELECT date '
                               'FROM hr_evaluation_evaluation where id=119')
    self.deadline = self.env.cr.fetchone()[0]
Run Code Online (Sandbox Code Playgroud)