模型層面
一:_table_exist
檢查該模型對於的資料庫表是否存在,是則返回1,否則返回0.
@api.model_cr
def _table_exist(self):
pass
模型記錄層面
二:create(self,vals)
記錄的建立函式,一般情況下,是根據檢視傳過來的dict物件,生成模型記錄。我們可以重寫create方法:
1 獲取vals引數,從中提前資料進行校驗、替換;
2 呼叫super(類,self).create(new_vals) 把新的dict作為引數執行記錄建立。
三:write(self,vals)
記錄的修改函式,很少重寫,引數也是dict。
四:read(self,fields)
記錄的檢視函式,引數是檢視哪些字段,預設是全欄位,很少重寫。
五:unlink(self)
記錄的刪除函式,引數是當前資料記錄集。一般重寫該函式,校驗記錄的狀態等,限制某些記錄不能被刪除。
六:_search(self, args, offset=0, limit=none, order=none, count=false, access_rights_uid=none)
模型記錄的搜尋函式,定義了該模型的記錄被關聯搜尋、搜尋檢視搜尋時的條數、排序字段、總數、檢索許可權等。
七:name_get()
name_get()函式定義了該模型的記錄在被關聯、搜尋時,所顯示出來的名字,預設是使用name欄位的值。
如果我們想自定義該模型的記錄顯示的名稱,例如:使用 編碼+name欄位 顯示的復合名稱,則可以重寫name_get()函式:
@api.model
def name_search(self,name=』』,args=none,operator=『ilike』,limit=100):
args = args or
domain =
if name:
domain = [』|』,(『name』,operator,name),(『其他比對字段』,operator,name)]
pos = self.search(domain + args,limit=limit) //使用擴充套件後的條件進行查詢
return pos.name_get() //把查詢結果的name返回
九:default_get()
default_get(fields) 函式用於初始化記錄的預設值,對於模型的某些字段如果需要設定預設值,可以重寫模型的default_get()函式達到目的。
例如:從表單中攜帶上下文資訊跳轉到嚮導、跳轉到乙個模型的新建表單檢視等,可以在跳轉時往context傳遞資料,然後在嚮導模型、被跳轉建立的模型中重寫default_get方法,從context中提前資訊,進行字段預設值的初始化。
@api.model
def default_get(self, default_fields):
result = super(類名, self).default_get(default_fields)
context_data = self.env.context.get(『key』)
//根據context_data進行相關資料查詢、處理操作
result.update() //更改記錄的字段預設值
return result
十:name_create(name)
相當於只傳遞name字段值,呼叫create方法建立一條新記錄。
十一:fields_get
字段查詢函式,一般不重寫:以資料字典的形式返回欄位的定義,通過繼承得來的字段也會在其中,string/help/selection屬性會自動被翻譯
fields_get([fields],[attributes]):
fields引數是字段列表、為空或不傳返回所有字段
attributes 可指定欄位的屬性、為空或不傳時返回全部的
檢視資訊層面
十二:fields_view_get
檢視查詢函式,一般不重寫:返回指定檢視的具體組成如:字段,所關聯的模型,檢視結構。
fields_view_get():
view_id 檢視的id或none
view_type 當view_id引數為空時指定檢視型別如form,tree等
******* 引數為true時將上下文動作包含在內
十二:get_formview_action
表單檢視獲取函式,可以重寫該函式,使模型載入某個特定的form檢視,甚至可以在載入時傳遞context值,控制檢視的行為。
十三:load_views(views,options)
檢視載入函式,可以重寫該函式,在載入檢視時傳遞context值,控制檢視行為。
Odoo模型的內建方法 可按需重寫)
模型層面 一 table exist 檢查該模型對於的資料庫表是否存在,是則返回1,否則返回0.api.model cr def table exist self pass 模型記錄層面 二 create self,vals 記錄的建立函式,一般情況下,是根據檢視傳過來的dict物件,生成模型記錄。...
odoo10基本方法
基本方法 create方法 在資料表中插入一條記錄 或新建乙個物件的resource 格式 def create self,cr,uid,vals,context 引數 vals 待新建記錄的字段值,是乙個字典。返回值 新建記錄的id search方法 查詢符合條件的記錄 格式 def search...
odoo 動態建立欄位的方法
動態建立字段並非乙個常見的的需求,但某些情況下,我們確實又需要動態地建立字段。odoo 中建立欄位的方法有兩種,一種是通過python檔案class中進行定義,另一種是在介面上手工建立,odoo通過state欄位對這兩種型別的字段進行區分。通過介面建立的字段必須以x 開頭。筆者曾經試圖通過pytho...