我在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)中执行查询
发布于 2015-09-15 19:37:36
正如哈迪克所说,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]发布于 2015-09-15 20:32:31
如果evaluation_id是hr.evaluation.evaluation模型的m2o字段,你可以尝试下面的代码。您根本不需要执行查询。
@api.onchange('evaluation_id')
def onchange_evalID(self):
if self.evaluation_id and self.evaluation_id.date:
self.date = self.evaluation_id.datehttps://stackoverflow.com/questions/32583208
复制相似问题