过滤继承的模型字段odoo

时间:2019-06-07 09:56:21

标签: python odoo odoo-12

我正在创建一个自定义模块,其中我有一个many2one字段,该字段包含来自res.partner的供应商= True的条目。我的领域,

seller = fields.Many2one('res.partner', string="Select Seller")

请阅读我可以在xml文件中执行此操作并尝试过

 <data>

          <record id="test_menu_action" model="ir.actions.act_window">
            <field name="name">Tests</field>
            <field name="res_model">tests.alltests</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="domain">[('supplier','=',True)]</field>
            <field name="help" type="html">
                <p class="oe_view_nocontent_create">Create The First Test
                </p>
            </field>
        </record>





        <menuitem id="quality_main_menu"
                name="Quality"/>
        <menuitem id="test_create" parent="quality_main_menu" name="Test" action="test_menu_action"/>

    </data>

这给了我以下错误,

Odoo Server Error ........
ValueError: Invalid field 'supplier' in leaf "<osv.ExtendedLeaf: ('supplier', '=', True) on tests_alltests (ctx: )

我该如何正确做?

我正在使用odoo V12社区版。

1 个答案:

答案 0 :(得分:1)

首先,您无需在操作中执行此操作, 相反,您应该在自己的字段中执行此操作:

  1. 如果必须始终应用域,那么您要做的是 将其放在字段声明中,以便在任何时候使用 查看域已自动应用。
     seller = fields.Many2one('res.partner', 
                        string="Select Seller",
                        domain="[('supplier','=',True)]")
  1. 如果不总是应用该域,则在需要时将其添加为XML视图
    <field name="seller" domain="[('supplier','=',True)]"/>

对于您在操作中使用的域,它是用于另一种情况 例如,如果您想为res.partner创建菜单,而您想 用户只能看到供应商,则可以通过以下方式添加域以进行操作 无论用户如何使用搜索视图,都将始终添加该域 到选定的过滤器。