跳至内容
菜单
此问题已终结

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
2659
0
6月 24
1438
2
11月 23
3052
7
4月 21
20376
1
10月 20
4804