odoo 通過button跳轉到tree視圖,並傳遞domain


跳轉到視圖的按鈕類型,目前我知道的有兩種,一種是object,即通過定義相應的方法來返回相關的視圖,另一種是action,可以直接跳轉到對應的視圖

舉例如下:

                    <button name="button_get_product_quantity" type="object" string="查詢可用量"/>
                    <!--button_get_product_quantity 是一個定義的方法-->
                    <field name="id" invisible="1"/>
                    <button name="%(sale_order_line_part_action_tree)d" type="action" string="配件信息" context="{'default_order_line_id':id}"/>
                    <!--sale_order_line_part_action_tree 是一個窗口動作-->

第一種傳遞domain比較簡單,可以直接在函數返回的動作視圖中添加domain,domain 的數據可以直接在函數中獲取,此處不再贅述
第二種傳遞domain需要借助context實現:

  1. 在原視圖中的button設置context,本例中設置的上下文:context="{'default_order_line_id':id}"
  2. 在動作視圖中將context 的值取出,context.get('default_order_line_id', True),並定義到domain字段中:
<record id="sale_order_line_part_action_tree" model="ir.actions.act_window">
    <field name="name">sale.order.line.part.action</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">sale.order.line.part</field>
    <field name="view_mode">tree,form</field>
    <field name="view_type">form</field>
    <field name="domain">[('order_line_id','=',context.get('default_order_line_id', True))]</field>
    <field name="help" type="html">
    <field name="target">new</field>
        <p class="oe_view_nocontent_create">
            <!-- Add Text Here -->
        </p><p>
            <!-- More details about what a user can do with this object will be OK -->
        </p>
    </field>
</record>


免責聲明!

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



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