我有2个one2many字段,由one2many_list小部件表示。字段是:
documents_applicant_1 = fields.One2many(comodel_name='application.documents', documents_applicant_2 = fields.One2many(comodel_name='application.documents', inverse_name='application_id')
<group>
<field name="documents_applicant_1" widget="one2many_list"
nolabel="1">
<tree string="Variants" editable="bottom">
<field name="name" />
<field name="document_raw_data" id="document_raw_data_applicant_1" />
<!-- <field name="category" /> -->
</tree>
</field>
</group>
<group>
<field name="documents_applicant_2" widget="one2many_list"
nolabel="1">
<tree string="Variants" editable="bottom">
<field name="name" />
<field name="document_raw_data" id="document_raw_data_applicant_2" />
<!-- <field name="category" /> -->
</tree>
</field>
</group>
当用户使用这些字段添加记录时,根据用于添加记录的列表,我想传递上下文。我的布局如下:
现在,除了想要在我的用户将记录添加到左侧列表和右侧列表时传递不同的上下文时,我想对两个列表上显示的记录应用动态过滤器。
如何实现上述目标? 我不想写javascript而不是使用现有的功能
答案 0 :(得分:1)
您可以将所需的域添加到Python代码中的One2many
字段中(使用不可用的XML)。然后,在XML中,您可以使用前缀default_
添加上下文。
我举了一个例子:
假设您想要
的记录documents_applicant_1
字段来添加记录 其类别为&#39; <&#39; ,documents_applicant_2
字段用于添加 类别为&#39; B&#39; 。然后你可以写:
Python代码
documents_applicant_1 = fields.One2many( comodel_name='application.documents', inverse_name='application_id', domain=[('category' '=', 'A')], ) documents_applicant_2 = fields.One2many( comodel_name='application.documents', inverse_name='application_id', domain=[('category' '=', 'B')], )
XML代码
<group> <field name="documents_applicant_1" widget="one2many_list" nolabel="1" context={'default_category': 'A', }> <tree string="Variants" editable="bottom"> <field name="name" /> <field name="document_raw_data" id="document_raw_data_applicant_1" /> <field name="category" /> </tree> </field> </group> <group> <field name="documents_applicant_2" widget="one2many_list" nolabel="1" context={'default_category': 'B', }> <tree string="Variants" editable="bottom"> <field name="name" /> <field name="document_raw_data" id="document_raw_data_applicant_2" /> <field name="category" /> </tree> </field> </group>
我不知道这是不是你想要的,我希望它可以帮助你。