odoo 9函数

时间:2016-12-19 14:58:52

标签: sql openerp odoo-9

如何在函数中创建odoo 9中的sql语句?

我想调用my_function并打印数据库中的所有记录。

例如:从time_start> ='TODAY''

的时间选择time_start
def my_function(self):
        result = []
        for data in self.browse():
            cr.execute('''select
                    time_start
                from
                    time
                where
                    time_start >= 'TODAY''')
        print all result line by line

1 个答案:

答案 0 :(得分:1)

尝试

def my_function(self):
   result = []
   for data in self.browse():
      cr.execute('''select
                    time_start
                from
                    time
                where
                    time_start >= 'TODAY''')

      for line in cr.dictfetchall():
         print line["time_start"]
         print line

cr.dictfetchall()返回一个dicts列表。此列表中的每个元素都代表查询结果中的一行。

在我的解决方案中,我遍历此列表,可以通过数据库中的fieldname直接访问该字段。

请注意,在循环中使用查询。可能有更好的方法。

编辑:尝试search而不是browsebrowse为您提供与给定ID相匹配的记录。

def my_function(self):
   result = []
   for data in self.search([]):
      cr.execute('''select
                    time_start
                from
                    time
                where
                    time_start >= 'TODAY''')

      for line in cr.dictfetchall():
         print line["time_start"]
         print line