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