콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다

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
2903
0
6월 24
1529
2
11월 23
3207
7
4월 21
20627
1
10월 20
4977