天天看點

odoo8下新增時初始化明細項目的新增

最近聽到有人在讨論一個開發問題,就是在新增一筆資料時,在明細字段需要初始化新增一些資料,找了odoo下面的一個執行個體看了一下,功能面上是可以做到的。例如項目子產品,在新增一個項目時,系統會自動帶入階段的明細定義。

看了一下源碼,大概是這樣子實作的,在定義項目的源碼中,加了一個default的定義,傳回的是一個明細的清單:

_defaults = {
        'type_ids': _get_type_common,
    }
           

這裡_get_type_common是一個自定義函數,它的源碼也很簡單:

def _get_type_common(self, cr, uid, context):
        ids = self.pool.get('project.task.type').search(cr, uid, [('case_default','=',1)], context=context)
        return ids
           

這樣在新增項目時,系統就會傳回符合條件的階段定義清單在視圖中顯示。