2016-12-19 3 views
1

Как создать функцию sql statment в odoo 9?SQL statment в odoo 9 function

Я хочу вызвать my_function и распечатать всю запись из базы данных.

Например: выберите TIME_START время от где TIME_START> = 'TODAY'»

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

Попробуйте

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. Каждый элемент из этого списка представляет строку в вашем запросе-результате.

В моем решении я перебираю этот список и могу напрямую обращаться к полю по имени поля в базе данных.

Обратите внимание, что использование запроса в цикле. Наверное, есть лучший способ.

EDIT: попробуйте search вместо browse. browse дает вам соответствующие записи для заданных идентификаторов.

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 
+0

Tnx для ответа, но я не могу получить результат https://postimg.org/image/4qlkuix9f/ –

+0

заказ мой редактировать! – Nope

+0

cr.execute ('' 'select NameError: глобальное имя' cr 'не определено –

 Смежные вопросы

  • Нет связанных вопросов^_^