Odoo中的env詳解


轉載請注明原文地址:https://www.cnblogs.com/ygj0930/p/10826382.html

 

一:environment

    environment類提供了對ORM對象的封裝,同時提供了:

    1)注冊類的訪問:對於繼承Model類來說可以直接通過self.env對environment進行操作。

    2)記錄集的緩存:清除緩存可以使用environment對象的invalidate_all()方法進行。  

    3)管理重計算的數據結構。  

 

二:env的屬性列表

1.user:返回當前用戶  
    self.env.user  
2.lang:返回當前語言代碼  
    self.env.lang  
3.in_draft:返回是否處於草稿狀態  
    self.env.in_draft  
4.in_onchange:返回是否處於on_change草稿模式  
    self.env.in_onchange  
另外還有cr,registery,cache,prefetch,computed,dirty,todo,mode,all等,有待一一探究。

 

三:env中屬性的使用

 
        
self.env.cr 或者 self._cr是數據庫游標對象,通常用於查詢數據庫
self.env.uid或者self._uid是當前用戶的數據庫ID
self.env.user是當前用戶記錄
self.env.ref(xml_id)返回XML ID對應的記錄
self.env[model_name]返回給定模型的實例
 

四:更改context

    1:.sudo().XXX:使用現有數據集以超級權限運行環境來執行XXX操作。

    2:self.with_context({key:val}):可用於替換當前運行環境的context

    3:with_env() :完整替換當前運行環境

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM