odoo one2many mny2mny 欄位設定預設值
阿新 • • 發佈:2018-12-11
我們經常會遇到這樣的需求,在建立的時候 給 明細行(one2many)設定預設值。
我們先來看看操作這兩個欄位的方法
many2many (0,0,{values}) 根據values裡面的資訊新建一個記錄。 (1,ID,{values})更新id=ID的記錄(寫入values裡面的資料) (2,ID) 刪除id=ID的資料(呼叫unlink方法,刪除資料以及整個主從資料鏈接關係) (3,ID) 切斷主從資料的連結關係但是不刪除這個資料 (4,ID) 為id=ID的資料新增主從連結關係。 (5) 刪除所有的從資料的連結關係就是向所有的從資料呼叫(3,ID) (6,0,[IDs]) 用IDs裡面的記錄替換原來的記錄(就是先執行(5)再執行迴圈IDs執行(4,ID)) 例子[(6, 0, [8, 5, 6, 4])] 設定 many2many to ids [8, 5, 6, 4] one2many (0, 0,{ values })根據values裡面的資訊新建一個記錄。 (1,ID,{values}) 更新id=ID的記錄(對id=ID的執行write 寫入values裡面的資料) (2,ID) 刪除id=ID的資料(呼叫unlink方法,刪除資料以及整個主從資料鏈接關係)
從上面得知
(0, 0,{ values })根據values裡面的資訊新建一個記錄。
這種寫法可以新建一條記錄
那麼我們在定義欄位的時候就可以設定預設值了 寫法如下
#單個賦值
_default_line_ids=[ (0, 0,{ values })]
#多個賦值
_default_line_ids=[
(0, 0,{ values }),
(0, 0,{ values }),
(0, 0,{ values })
]
line_ids = fields.One2many('XXX', 'XX_id', default=_default_line_ids)
這樣我們在建立的時候 明明就會有預設值了
照著上面的方法 完全就可以寫出怎麼給Many2many賦預設值了。這裡就不再介紹。