如何打开属于父记录的记录而不是所有在odoo中的视图(树/列表)上显示的记录。我有情况需要打开记录,例如:
当我选择特定的学位/课程(视图1)时,在答案(视图2)中显示关于该课程/学位等的所有科目(学生分配该科目)。
是否有使用上下文和域过滤器?
请指导我如何在这种情况下使用上下文和过滤器..
因为我不知道你如何命名你的变量,让我们假设模型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,你必须调用一个比这个简单代码有点复杂的服务器动作。告诉我你有什么。