1
我想知道他們是否是一種在odoo中某處存儲整數的方法,而無需創建新的objet。我想保留一個號碼,以便只顯示一個身份證號碼高於該號碼的夥伴。但我不想在res.partner的每個記錄中添加一個字段。我怎樣纔能有一個數字,我可以訪問到我的XML沒有它是一個res.partner領域?在odoo中存儲一個int
我想知道他們是否是一種在odoo中某處存儲整數的方法,而無需創建新的objet。我想保留一個號碼,以便只顯示一個身份證號碼高於該號碼的夥伴。但我不想在res.partner的每個記錄中添加一個字段。我怎樣纔能有一個數字,我可以訪問到我的XML沒有它是一個res.partner領域?在odoo中存儲一個int
對於這種情況,您可以使用型號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)
謝謝,我會盡力找到一些關於此的文檔。 –
對不起,添加一個問題,但: 你在哪裏設置參數?正如我在其他討論中看到的那樣,我嘗試了一個瞬態模型,但似乎並不像它應該在這裏。 (我想在導出res_partner的特定字段時保存最高的ID)。你知道我應該怎麼做嗎?我是否必須創建一個新班級? –
模型/類已經存在:'ir.config_parameter'。您可以在設置/技術/參數/系統參數下找到默認參數。只需在您的模塊中使用xml記錄創建一個config_parameter,並將其用於您的目的。將set_param()調用實現到導出執行中,以將新值保存到config_parameter中。 – CZoellner