首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中执行Odoo-8查询?

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

Stack Overflow用户
提问于 2015-09-15 18:04:19
回答 2查看 9.2K关注 0票数 6

我在hr_evaluation_interview类中有以下函数

代码语言:javascript
复制
@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字段上没有打印任何内容。当我检查日志时,我看到以下警告:

代码语言:javascript
复制
WARNING db_name openerp.models: Cannot execute name_search, no _rec_name defined on hr_evaluation.evaluation

我试着在网上查看为什么会出现这个警告,但没有得到任何帮助。我做错了什么吗?如何在@api.onchange(self)中执行查询

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-15 19:37:36

正如哈迪克所说,cr.execute()不会直接返回你的结果。您需要在执行查询后从游标中获取这些值。试着这样做:

代码语言:javascript
复制
@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]
票数 5
EN

Stack Overflow用户

发布于 2015-09-15 20:32:31

如果evaluation_idhr.evaluation.evaluation模型的m2o字段,你可以尝试下面的代码。您根本不需要执行查询。

代码语言:javascript
复制
@api.onchange('evaluation_id')
def onchange_evalID(self):
    if self.evaluation_id and self.evaluation_id.date:
        self.date = self.evaluation_id.date
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32583208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档