odoo10學習筆記九:Odoo10 API

原文地址:http://www.cnblogs.com/ygj0930/p/7150645.htmlhtml

一:紀錄集APIgit

model中的數據是以集合的形式使用的,所以能夠使用集合運算來操做。github

  • 集合運算符數據庫

    • record in set返回record是否在set中,record須爲單條記錄,record not in set反之
    • set1 <= set2 返回set1是否爲set2的子集
    • set1 >= set2 返回set2是否爲set1的子集
    • set1 | set2 返回set1和set2的並集
    • set1 & set2 返回set1和set2的交集
    • set1 - set2 返回在集合set1中但不在set2中的記錄

集合運算API:緩存

  • ids 獲得當前記錄集合的id列表
  • ensure_one() 驗證一個記錄集合是否只包含一條記錄
  • exists() 返回當前記錄集中真正存在的子集,並把緩存中未刪除的部分作標記,可用於判斷if record.exists():
  • filtered(func) 返回知足func參數內條件的記錄集合,參數能夠是一個函數或者用.分隔的字段列表
  • sorted(key=None, reverse=False) 返回按key排序以後的記錄集,key參數能夠是一個返回單個key的函數或字段名稱或爲空,reverse參數爲True時即爲倒序
  • mapped(func) 將func函數應用到全部記錄上,並返回記錄列表或集合

 

二:運行環境APIapp

運行環境保存了不少ORM相關的變量:數據庫查詢遊標、當前用戶、元數據,還存有緩存,可以使用env來訪問,如:dom

records.env.user函數

records.env.crpost

records.env.contextspa

更改運行環境:

  • sudo() 使用現有數據集建立一個新運行環境,獲得一個基於新運行環境的數據集的拷貝
env['res.partner'].sudo().create({'name': "A Partner"})
  • with_context()
    一個參數時可用於替換當前運行環境的context,多個參數時經過keyword添加到當前運行環境context或單參數時設置的context
  • with_env() 完整替換當前運行環境

 

三: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

 

到個人github上查看更多項目:https://gith
相關文章
相關標籤/搜索