我在 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')
注意:出于测试目的,我只是在查询中提供 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
我尝试在线查看此警告的原因,但没有任何帮助。难道我做错了什么?如何从 @api.onchange(self)
中执行查询?
最佳答案
正如 Hardik 所说,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]
关于python - 如何从 Python 在 Odoo-8 中执行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32583208/