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

时间:2018-01-02 11:50:09

标签: python xml python-2.7 openerp

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

您的操作,即在学位视图中单击按钮后打开学生树的操作应该是这样的:

degree_ids

<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字段相结合)将自动填入具有正确ID的字段default_degree_id。我的意思是,如果你想看到正在学习 IT 的学生,你可以去学位 IT 视图,点击degree_id按钮,然后看到学生,但是如果您点击“创建”,Students字段将自动填入 IT ,这是有道理的。

如果学位与学生之间的关系是Many2many,则必须调用服务器操作,这比这个简单的代码有点复杂。让我知道你有什么。