轉載請轉載原文地址:http://www.javashuo.com/article/p-wogjeceq-md.html html
一:紀錄集API數據庫
model中的數據是以集合的形式使用的,所以能夠使用集合運算來操做。緩存
集合運算符app
集合運算API:dom
if record.exists():
二:運行環境API函數
運行環境保存了不少ORM相關的變量:數據庫查詢遊標、當前用戶、元數據,還存有緩存,可以使用env
來訪問,如:學習
records.env.userspa
records.env.cr翻譯
records.env.contextcode
更改運行環境:
env['res.partner'].sudo().create({'name': "A Partner"})
三:ORM API
search() 接收domain表達式參數,返回符合條件的數據集合,能夠經過limit,offset參數返回一個子集,還可經過order參數對數據排序。
self.search([('is_company', '=', True), ('customer', '=', True)])
search_count():統計知足條件的數據數量
create() 接收多個字段、值的組合,返回新建立的數據集:
self.create({'name': "New Name"})
write() 接收多個字段、值組合,會對指定數據集的全部記錄進行修改,不返回:
self.write({'name': "Newer Name"})
browse() 根據數據的id或者一組id來查找,返回符合條件的數據集合:
self.browse([7, 18, 12])
exists() 獲得某個數據集中保留在數據庫中的那部分(可用於檢查數據集是否爲空):
if not record.exists(): raise Exception("The record has been deleted")
ref() 運行環境函數,根據提供的外部id返回對應的數據記錄:
env.ref('base.group_public')
ensure_one() 檢驗某數據集是否只包含單條數據,若是不是則報錯:
records.ensure_one()
四:搜索函數
search(args[, offset=0][, limit=None][, order=None][, count=False])
根據args參數裏的domain表達式來搜索全部記錄,參數列表:
1.args:domain表達式,爲空時返回全部記錄
2.offset (int) 從第幾條記錄開始取
3.limit (int) 返回記錄行數的最大值
4.order (str) 排序的字段
5.count (bool) 當值爲True的時候只返回匹配記錄的條數
search_count(args)
返回根據給定domain表達式參數查詢所獲得的記錄條數
name_search(name='', args=, operator='', limit=)
返回根據name條件來查詢,並知足args指定的domain表達式的記錄集合
name (str) -- 用來匹配的name字符串 args (list) -- domain表達式列表 operator (str) -- 用來匹配的操做符,如: 'like' , '='. limit (int) -- 可選參數,最多返回的記錄行數
五:字段或視圖查詢
字段查詢:
fields_get([fields][, attributes]) 以數據字典的形式返回字段的定義,經過繼承得來的字段也會在其中,string/help/selection屬性會自動被翻譯 fields參數是字段列表、爲空或不傳返回全部字段 attributes 可指定字段的屬性、爲空或不傳時返回所有的
視圖查詢:
fields_view_get([view_id | view_type='']) 返回指定視圖的具體組成如:字段,模型,視圖結構 參數列表: view_id 視圖的id或None view_type 當view_id參數爲空時指定視圖類型如form,tree等 toolbar 參數爲true時將上下文動做包含在內
default_get(fields) 獲取指定字段的默認值
name_get() 以列表形式返回每條記錄的描述,默認是display_name字段
name_create(name) 至關於調用create方法建立一條新記錄而只設置一個display_name