跳至内容
菜单
此问题已终结
1 回复
7375 查看

Hello,

Sorry if this is super basic, I am almost new with python.

So, basically I am passing an ID to a function and I need to get the record just before the one with the ID I am passing from a table.

This is my function

def get_prev_period(self,period_id):
        if period_id:
            period_list = self.pool.get('sim.periods').browse(self.cr, self.uid, period_id)
            current_id = period_list.id
            #Now I need to get the ID just above current_id
        return 0

So, basically I need to get the ID just above the current_id. I am not able to do current_id - 1 because that might no be the case.

Any tips will be much appreciated! Thanks!

形象
丢弃
最佳答案

You need to execute your manual query on postgres database table,

def get_prev_period(self,period_id):
            if period_id:
               result= self.cr("""SELECT id FROM table_name WHERE id < %s ORDER BY id DESC LIMIT 1""", [period_id])
               result = self.cr.dictfetchall()
               print result # holds the one row data
               current_id = result[0]['id']
            return 0
形象
丢弃
编写者

You are a genius! Thanks!

相关帖文 回复 查看 活动
2
5月 22
10423
1
3月 15
7530
6
6月 17
42077
2
6月 16
3150
3
1月 16
4467