Фильтр унаследованного поля модели odoo - PullRequest
1 голос
/ 07 июня 2019

Я создаю пользовательский модуль, в котором у меня есть поле many2one, в котором есть записи из res.partner с supplier = 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 Community Edition.

1 Ответ

1 голос
/ 07 июня 2019

Прежде всего вам не нужно делать это в действии, вместо этого вы должны сделать это в поле само:

  1. Если домен всегда должен применяться, лучше всего положить его в декларации поля, так что когда бы вы ни использовали его в любом просмотр домена применяется автоматически.
     seller = fields.Many2one('res.partner', 
                        string="Select Seller",
                        domain="[('supplier','=',True)]")
  1. Если домен применяется не всегда, добавьте его в представление XML, когда вам это нужно
    <field name="seller" domain="[('supplier','=',True)]"/>

А для домена, который вы использовали в действии, это для другой ситуации например, если вы хотите создать меню для res.partner, и вы хотите пользователи видят только поставщика, вы можете добавить домен к действию таким образом независимо от того, что пользователь делает с поиском, этот домен всегда добавляется на выбранный фильтр.

...