關於ODOO中配置模型中的資料問題

2021-09-19 07:05:06 字數 1581 閱讀 3462

感謝【上海先安科技】digitalsatori 老師的指點

問:

res.config.settings 是個瞬態的,會被定時清理。

在這裡設定的東西,被清理後,這些配置資料是怎麼生效的????

例如:在庫存的設定中,我勾選了交貨包裹這一項。一段時間後,這個res.config.settings被清理。清理後,我勾選的項依然有效,是什麼原理?

還有,我能否拿到配置中的某個字段,根據這個字段,在我的**中做一些判斷。

謝謝答:

好問題。

我們一般會繼承res.config.settings來定義一些配置資訊。 而res.config.settings是乙個暫態模型(models.transientmodel)並不能長久儲存資料,那資料是儲存在什麼地方的呢?

簡單回答,這些配置資料並不儲存在同乙個地方,很多設定的狀態是通過動態判斷來獲得的。

實際上當我們定義乙個乙個如下的配置類:

class myconfigwizard(models.transientmodel):

_name = 'my.settings'

_inherit = 'res.config.settings'

default_foo = fields.type(..., default_model='my.model')

group_bar = fields.boolean(..., group='base.group_user',implied_group='my.group')

module_baz = fields.boolean(...)

config_qux = fields.char(..., config_parameter='my.parameter')

other_field = fields.type(...)

可以看到配置類上的字段分以上5種型別, 也就是:

當開啟配置介面時系統會自動呼叫res.config.settings類的default_get方法,而該方法定義了如何獲取這5類字段的設定值的方法。

希望對你理解有幫助

舉例:

from odoo import api, fields, models

class resconfigsettings(models.transientmodel):

_inherit = 'res.config.settings'

group_stock_allow_negative_inventory = fields.boolean("allow negative inventory",

implied_group='roke_stock.group_allow_negative_inventory') # 使用 group_allow_negative_inventory_enabled = self.user_has_groups('模組名.group_allow_negative_inventory')

Odoo中的ORM API 模型資料增刪改查

1 create 返回新建立的記錄物件 self.create 1 search 返回資料集 接收domain表示式引數,返回符合條件的資料集,可以通過limit,offset引數限定查詢條數,還可通過order引數根據某字段值對資料集排序。self.search is company true c...

odoo中的inherit模型屬性繼承及模型關係

odoo中的inherit模型屬性繼承及模型關係 一.程式bug adv.py中 class bugadvanced models.model inherit bm.bug 高階模型當中新增乙個所需時間字段 need time fields.integer 所需時間 小時 給bm.bug類的name...

Odoo中的嚮導

嚮導類似於彈窗,用於接收使用者的輸入,然後作出相應的處理。class xxwizard models.transientmodel 要點1 使用瞬態模型 name xx.wizard order id asc 字段 fields.型別 u 欄位名 要點2 這些欄位在彈窗中由使用者賦值 api.mod...