2016-06-21 56 views
1

我想知道他們是否是一種在odoo中某處存儲整數的方法,而無需創建新的objet。我想保留一個號碼,以便只顯示一個身份證號碼高於該號碼的夥伴。但我不想在res.partner的每個記錄中添加一個字段。我怎樣纔能有一個數字,我可以訪問到我的XML沒有它是一個res.partner領域?在odoo中存儲一個int

回答

1

對於這種情況,您可以使用型號ir.config_parameter。習慣medhod set_param()和get_param()。

該參數將其值保存爲字符串,因此對於我的示例,它將被解析爲整數。 xml id將是my_module.test_parameter

但在視圖中使用這個有點棘手。一種方法是用模型的搜索視圖中的上下文中,「信號」過濾:你的模型中使用的參數的

<filter name="my_filter" string="My Filter" context="{'search_by_parameter':1}" /> 

這樣,您可以覆蓋搜索()當過濾器被激活:

def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): 
    context = dict(context or {}) 
    if 'search_by_parameter' in context: 
     try: 
      value = int(self.pool.get('ir.config_parameter').get_param(cr, uid, 'my_module.test_parameter')) 
     except: 
      value = 0 
     args.append(('id', '>', value)) 
    return super(my_model, self).search(cr, uid, args, offset, limit, order, context, count) 
+0

謝謝,我會盡力找到一些關於此的文檔。 –

+0

對不起,添加一個問題,但: 你在哪裏設置參數?正如我在其他討論中看到的那樣,我嘗試了一個瞬態模型,但似乎並不像它應該在這裏。 (我想在導出res_partner的特定字段時保存最高的ID)。你知道我應該怎麼做嗎?我是否必須創建一個新班級? –

+0

模型/類已經存在:'ir.config_parameter'。您可以在設置/技術/參數/系統參數下找到默認參數。只需在您的模塊中使用xml記錄創建一個config_parameter,並將其用於您的目的。將set_param()調用實現到導出執行中,以將新值保存到config_parameter中。 – CZoellner

相關問題