コンテンツへスキップ
メニュー
この質問にフラグが付けられました
1 返信
7406 ビュー

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
10460
1
3月 15
7551
6
6月 17
42110
2
6月 16
3178
3
1月 16
4505