Odoo:如何 select 使用菜单 ID 自定义字段

Odoo: How to select custom fields using menu id

我已经将一些自定义字段制作成 my_purchase_custom.py class,如下所示。

  • Custom A
  • Custom B
  • Custom C
  • etc.

现在,purchase.order模型中有两个菜单项

  1. Requests for Quotations [menu_id=314]
  2. Purchase Orders [menu_id=315]

我想做的是将字段 Custom A 放入 menu_id=314 并将字段 Custom B 和 Custom C 放入 menu_id=315

请就如何更改我的 .xml 文件提供帮助。我经历了这个 link: https://www.odoo.com/fr_FR/forum/help-1/question/hide-menu-for-existing-group-18704 但无法正确理解。示例代码片段将是个好主意

您可以为您的菜单项分配一个操作并加载您想要的特定视图。例如:

<record id="action_sale_order_view" model="ir.actions.act_window">
    <field name="name">Quotations</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">sale.order</field>            
    <field name="view_type">form</field>
    <field name="view_mode">tree,form,calendar,graph</field>
    <field name="domain">[('field_name','=',False)]</field>
    <field name="help" type="html">
      <p class="oe_view_nocontent_create">
        Click to define a new quotation.
      </p>
    </field>             
</record> 

<record id="view_act_object_tree" model="ir.actions.act_window.view">
    <field name="view_mode">tree</field>
    <field name="view_id" ref="sale.view_quotation_tree" />
    <field name="act_window_id" ref="action_sale_order_view" />
</record>

<record id="view_act_object_form" model="ir.actions.act_window.view">
    <field name="view_mode">form</field>
    <field name="view_id" ref="sale.view_order_form" />
    <field name="act_window_id" ref="action_sale_order_view" />         
</record>       

<record id="view_act_object_calendar" model="ir.actions.act_window.view">
    <field name="view_mode">calendar</field>
    <field name="view_id" ref="sale.view_sale_order_calendar" />
    <field name="act_window_id" ref="action_sale_order_view" />
</record>   

<record id="view_act_object_graph" model="ir.actions.act_window.view">
    <field name="view_mode">graph</field>
    <field name="view_id" ref="sale.view_sale_order_graph" />
    <field name="act_window_id" ref="action_sale_order_view" />
</record> 

<menuitem id="main_sale_order_view" 
          name="Quotations" 
          parent="base.menu_sales" 
          sequence="4" 
          action="action_sale_order_view" />

并且您可以在自定义视图中显示或隐藏您想要的元素。这就是您要找的吗?

您可以尝试通过以下方式进行一些操作。

在您的 .py 文件中添加以下代码 从 openerp.osv 导入字段,osv

class purchase_order(osv.osv):
    _inherit ="purchase.order"
    _columns = {
        'custom_a': fields.char('Custom A'),
        'custom_b': fields.char('Custom B'),
        'custom_b': fields.char('Custom C'),
    }

在您的 .xml 文件中添加以下代码

<record model="ir.ui.view" id="r3x_inherit_purchase_ord">
    <field name="name">Purchase Order Inherit Form</field>
    <field name="model">purchase.order</field>
    <field name="inherit_id" ref="purchase.purchase_order_form"/>
    <field name="arch" type="xml">

        <xpath expr="//field[@name='pricelist_id']" position="after">
            <field name="custom_a  attrs={'invisible':[('state','!=','draft')]}/>
            <field name="custom_b attrs={'invisible':[('state','=','draft')]} />
            <field name="custom_c attrs={'invisible':[('state','=','draft')]}/ />
        </xpath>

    </field>
</record>

请您也可以设置 openerp.py 文件的路径,并在 init 的 .py 文件中添加条目。 py文件。

查看升级模块重启服务器查看采购订单视图效果

希望我的回答对您有所帮助:)