Odoo 中的 XML 操作

搜索模型

許多人對 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 -esct 字段

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) 時使用。它能夠根據字段類型自動格式化。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章