Odoo開發之只讀、唯一性驗證:只讀的設置有兩種方法,一種是實在字段定義時設置為只讀,第二種是在頁面視圖中進行設置。
接前例,我們將學生(tech.student)的名字name字段設置成只讀。
方法一:字段定義添加只讀設置
方法二:視圖上加只讀設置
重啟服務,升級模塊,即可看到我們的修改生效了。
提示:修改了python代碼(非字段內容)只需重啟服務,修改了視圖文件需要升級模塊。
唯一性的驗證也有兩種方法,一種是利用_sql_constraint另一種是利用API的contraints裝飾器。
方法一:利用_sql_contraints
我們為我們的student對象添加要給學號字段,并設置成唯一的:
_sql_contraints 的格式為:[(限制名稱,限制條件,警告信息)],名稱可以隨便起,保證其唯一性即可,限制條件為postgresql的限制語句,常見的有UNIQUE\CHECK\PRIMERY KEY等等,具體請參考POSTGRESQL手冊。添加完_sql_contraints之后需要重啟服務,升級模塊。當我們輸入了重復的學員編號時會彈出提示:
注意:如果添加_sql_contraints前已經存在相同數據的字段,則_sql_contraints是添加不上的,因此也不會有提示出現。
方法二:@api.contrains
這次我們來驗證學員名字,如果有重復的名字則彈出提示。
我們創建一個名字為張三的學員:
再次創建一個名字為張三的學員:
可以看出已經存在名字為張三的學員,這樣就完成了對某個字段你的限制。
以上兩種方法的區別在于:_sql_contraints是從數據庫層面對數據進行唯一性的驗證,而@api.contraints是在代碼層面進行檢查。_sql_contraints的效率更高,@api.contraints的靈活性更好。
看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20170214/101298.html
文章列表