在新的api中,引入了環境的概念,它的主要目標是提供對游標、使用者、模型、上下文、記錄集、和快取的封裝。
有了這些,你沒有必要在再需傳入這些函式引數:
# before
def afun(self, cr, uid, ids, context=none):
pass
# now
def afun(self):
pass
你可以如下訪問環境:
def afun(self):
self.env
# or
model.env
環境是不可變的,並不能直接被修改,因為它也儲存著快取和記錄集等等。
你可以使用with_context
函式來修改你當前環境的上下文。
self.env['res.partner'].with_context(tz=x).create(vals)
注意不要使用這個功能來修改當前的記錄集合:
self = self.env['res.partner'].with_context(tz=x).browse(self.ids)
在重新瀏覽之後,它將會修改記錄集中當前的記錄,這將會產生快取和記錄集合之間的不一致。
環境提供了乙個輔助函式來切換使用者:
self.sudo(user.id)
self.sudo() # 預設將會使用superuser_id
# or
self.env['res.partner'].sudo().create(vals)
self.env.user
self.env.ref('base.main_company')
某些時候,你會不得不要使用這個游標直接插入/寫入。在這種情況下,你要想要使得快取失效。
self.env.invalidate_all()
odoo學習筆記十六 定時任務
一 定義定時器資料模型 模型中定義需要用到的字段 定時方法 from odoo import models,fields,api,exceptions import logging from datetime import datetime logger logging.getlogger name...
odoo10學習筆記十 Actions
actions定義了系統對於使用者的操作的響應 登入 按鈕 選擇專案等。一 視窗action ir.actions.act window 最常用的action型別,用於將model的資料展示出來。字段列表 1.res model 需要在view裡顯示資料的model 2.views 乙個 view ...
第二章 Odoo的安裝與部署
odoo的官方推薦是ubuntu server,所以,我們這裡也以ubuntu server為例。當然,其他系統也是可以的,只不過安裝起來相比ubuntu 會顯得稍微折騰,限於篇幅,本書不對其他系統的安裝部署進行介紹,如有需要可以參考我的部落格 或者中文論壇 shine it.net odoo使用的...