搜索模型
許多人對 XML 報表使用單獨的解析器只是爲了從另一個模型獲取值。但是,我們可以使用流動代碼從XML本身調用任何模型。
<span t-field="request.env['model.name'].search([],limit=1).a_field_name"/>
只有當我們需要對報表進行復雜計算時,才需要 XML 的 python 解析文件。
訪問會話
我們可以使用 XML 文件中的"請求.會話"訪問當前會話。會話對象中存儲的任何值都可以從中獲得。例如,當前用戶 ID 可以通過
request.session.uid
當前使用的數據庫
request.session.db
使用:
<t t-esc="request.session.uid"/>
<t t-esc="request.session.db"/>
訪問當前用戶記錄
用戶表中的任何列都可以通過使用 XML 文件中的"user. column (field_name)"獲得。例如,"user.name"將爲您提供用戶的名稱,"user.groups_id"將給出組中的所有當前用戶。
使用:
<field name="domain_force" > ['|', ('public', '=', 'groups'), ('group_public_id', 'in', [g.id for g in user.groups_id])] </field>
<strong t-field="user.name" />
部件
小部件可用於使 Odoo 界面更用戶友好。我們可以更改字段的外觀,而無需更改數據庫列。
<field name="field_name" widget="widget_name"/>
進度條: widget=”progressbar” 將爲浮點或整數字段創建進度條。
float_time: widget=”float_time“ 用於將浮點字段轉換爲時間格式,即 1.00 將轉換爲 01:00。
url : widget=”url” 爲字段創建 http 鏈接。
電子郵件: widget=”email” 將創建一個鏈接發送電子郵件.
貨幣: widget=”monetary” 可用於浮動字段, 以顯示字段後的貨幣符號。
t -esc和t 字段
t-esc 採用表達式,對其進行評估並打印內容。
<p><t t-esc="value"/></p>
它還可用於從對象獲取值:
<p><t t-esc="object.value"/></p>
但是,在模型中使用"字段"的情況下,最好使用 t 字段。
<p><t t-esc="model.field_name"/></p>
注意:如果您使用 t-esc來渲染字段,我們將無法打印未存儲的字段(如相關字段、沒有存儲的計算字段 = True 等)。
注意 : t-field 只能在執行字段訪問 (a.b) 時使用。它能夠根據字段類型自動格式化。