轉載請注明原文地址:https://www.cnblogs.com/ygj0930/p/10826286.html
一:Odoo模型屬性
1:_name
模型的唯一標識:如果沒有繼承其他模型時,必須指定該屬性。
2:_rec_name
模型記錄對象的顯示名,如設置該屬性則返回其指定的字段的值作為對象的顯示名;
不設置則默認顯示字段為name的字段值;
如無name字段則顯示"模塊名,id";
也可以重寫_name_get()方法,自定義模型記錄對象的拼接顯示名。
3:_log_access
是否往模型增加日志字段(create_uid
, create_date
,write_uid
, write_date
),默認為True。
4:_auto
是否自動為該模型創建數據庫表,默認為True,詳見BaseModel._auto_init方法。
_table
:數據庫對象名稱。缺省時數據庫對象名稱與_name指定值相同(.
替換為下划線)。_sequence
:數據庫id字段的序列。默認自動創建序列。_order
:數據顯示排序。所指定值為模型字段,按指定字段和方式排序結果集。
例:_order = "create_date desc":根據創建時間降序排列。可指定多個字段。
不指定desc默認升序排列;不指定_order默認id升序排列。
_constraints
:自定義約束條件。模型創建/編輯數據時觸發,約束未通過彈出錯誤提示,拒絕創建/編輯。
格式:
_constraints = [(method, 'error message', [field1, ...]), ...]
method
:檢查方法。返回True|Falseerror message
:不符合檢查條件時(method返回False)彈出的錯誤信息[field1, ...]
:字段名列表,這些字段的值會出現在error message中。
_sql_constraints
:數據庫約束。
例:
_sql_constraints = [ ('number_uniq', 'unique(number, code)', 'error message') ]
會在數據庫添加約束:CONSTRAINT number_uniq UNIQUE(number, code)
_inherit
:單一繼承。值為所繼承父類_name標識。如子類不定義_name屬性,則在父類中增加該子類下的字段或方法,不創建新對象;如子類定義_name屬性,則創建新對象,新對象擁有父類所有的字段或方法,父類不受影響。
格式:
_inherit = '父類 _name'
_inherits
:多重繼承。子類通過關聯字段與父類關聯,子類不擁有父類的字段或方法,但是可以直接操作父類的字段或方法。
格式:
_inherits = {'父類 _name': '關聯字段'}