odoo-Action菜單

數據文件
Odoo是一個高度數據驅動的系統, 雖然使用Python代碼來定製模塊行爲, 但很多模塊數據是在其載入時setup的, 並且有些模塊僅僅爲Odoo添加數據.


通過數據文件來定義模塊數據, 例如可以使用XML文件中的<record>元素定義數據, 每一個<record>元素創建或者更新數據庫中的一條記錄, 形式如下:
<openerp>
    <data>
        <record model="{model name}" id="{record identifier}">
            <field name="{a field name}">{a value}</field>
        </record>
    </data>
<openerp>


model:Odoo模型名.


id:外部ID(External Identifier), 通過它可以引用到記錄(並且不需要知道記錄所在的數據庫ID).


元素:name屬性用於確定字段名稱(例如description), 其內容就是字段值.


數據文件必須在模塊載入清單文件列表中, 也就是__openerp__.py的’data’列表(全部載入)或’demo’列表(只有設定爲載入演示數據纔會載入)中.




動作和菜單

觸發三個方面事件:
1.通過點擊菜單,鏈接到一個特定動作
2.點擊視圖中的按鈕,鏈接到指定動作
3.作爲一個對象的鏈接上下文操作


使用<menuitem>聲明一個ir.ui.menu並將其連接到一個action, 可以用下面的形式的代碼.
<record model="ir.actions.act_window" id="action_list_ideas">
    <field name="name">Ideas</field>
    <field name="res_model">idea.idea</field>
    <field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_ideas" parent="menu_root" name="Ideas" sequence="10"
          action="action_list_ideas"/>

注意: action必須先於menu的連接使用定義, 數據文件在載入時順序地執行, 所以動作的ID必須首先存在於數據庫中才能使用.


record屬性:
model固定屬性ir.actions.act_window
id 唯一
name 動作名稱
res_model 對象
view_model 顯示形式可以對調來優先顯示不同視圖


menuitem屬性
id不能重名
parent 爲上級菜單,如果菜單不在同一個XML要加上文件夾名稱
name 界面上顯示的文字
sequence 菜單排序
action 觸發的事件


Action通常是執行XML文件中對應的菜單,因爲action_id存在於數據庫中,可以創建一個菜單到指定的Action上。

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