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)?
正如哈迪克所说,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)