コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
7613 ビュー

Hi guys,

I have to create a dynamic custom search filter in order to filter results based on criterion set to the domain. The value set on criterion has to be dynamic and recovered by context.

In particular, I have a many2many field in wizard and when I insert a value, Odoo opens another wizard where it is possible search/filter/group by and select elements to add in field.


Many2many field is defined as follows:

<field name="pricelist_item_ids" context="{'search_default_pricelist': 1, 'pricelist_id_id': 12}">


My custom filter is defined as follows:

<record model="ir.ui.view" id="view_filter1">

            <field name="model">model</field>

            <field name="type">search</field>

            <field name="arch" type="xml">

                    <search string="">

                        <filter string="Selected Pricelist" name="pricelist" domain="[('pricelist_id','=', DYNAMIC VALUE)]"/>

                    </search>

            </field>

</record>

In DYNAMIC VALUE I would recover "pricelist_id_id" in context but Odoo return a KeyError because it can't find key "pricelist_id_id" in the context.


If I try to insert a static value in domain, my custom filter works in a right way!

domain="[('pricelist_id','=', 12)]


Any solutions? 

Thanks

アバター
破棄
最善の回答

[EDIT] This doesn't work. I believe its because the _domain_pricelist function executes without awareness of context.


A domain function on your pricelist field of the wizard should work.

@api.model

def _domain_pricelist(self):
return [('pricelist_id', '=', self._context.get('pricelist_id_id')]
pricelist = fields.Many2many(..., domain=_domain_pricelist)
アバター
破棄
関連投稿 返信 ビュー 活動
3
3月 25
2661
0
6月 24
1438
2
11月 23
3052
7
4月 21
20376
1
10月 20
4804