如何使用odoo 10中的按钮单击打开仅与特定父记录相关的记录?

问题描述 投票:-1回答:1

如何打开属于父记录的记录而不是所有在odoo中的视图(树/列表)上显示的记录。我有情况需要打开记录,例如:

当我选择特定的学位/课程(视图1)时,在答案(视图2)中显示关于该课程/学位等的所有科目(学生分配该科目)。

是否有使用上下文和域过滤器?

请指导我如何在这种情况下使用上下文和过滤器..

python xml python-2.7 openerp
1个回答
0
投票

因为我不知道你如何命名你的变量,让我们假设模型student有一个名为degree_id的Many2one字段,并且在学生中有一个名为degree_ids的One2many字段(尽管在这种情况下,Many2many关系会更有意义)。

您的操作,即在学位视图中单击按钮后打开学生树的操作,应如下所示:

<record model="ir.actions.act_window" id="act_open_students_view">
    <field name="name">Students</field> <field name="type">ir.actions.act_window</field>
    <field name="res_model">op.student.course</field>
    <field name="view_type">form</field>
    <field name="view_mode">kanban,form,search</field>
    <field name="domain">[('degree_id', '=', active_id)]</field>
    <field name="context">{'default_degree_id': active_id}</field>
</record>

domain将应用过滤器仅显示正在学习特定学位的学生。 context(与default_degree_id字段相结合)将自动填写具有正确ID的字段degree_id。我的意思是,如果你想看到那些正在学习的学生,那你就去了学位I.T.查看,单击Students按钮,然后查看学生,但如果单击创建,degree_id字段将自动填入I.T.,这是有道理的。

如果学位和学生之间的关系是Many2many,你必须调用一个比这个简单代码有点复杂的服务器动作。告诉我你有什么。

© www.soinside.com 2019 - 2024. All rights reserved.