如何在odoo中xml文件中进行domain筛选和页面获取默认值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/myt2000/article/details/86598940

1. domain条件筛选

实际应用中我们经常会出现多个模型的字段的关联(多对一,一对多)
比如举个例子,有三个模型项目project,阶段stage,任务task,现在任务中关联项目,阶段中有项目,现在在任务中一对多阶段

task模型中有task_stage_ids一对多这个字段,stage表示stage关联任务task的多对一字段

<field name="task_stage_ids" >
                                        <tree>
                                            <field name="stage" domain="[('project_ids','=', project_id)]"/>
                                            </tree>

可以看到,domain="[('project_ids','=', project_id)]"中project_ids是stage模型的字段,project_id是当前task模型的字段

2.获取默认值

<field name="task_stage_ids" context="{'default_project_id': project}">
                                        <tree >
                                            <field name="stage" domain="[('project_ids','=', project_id)]"/>
                                            </tree>

在py文件中添加:

class Stage(models.Model):
    _name = "stage"
   def _get_default_project_id(self):
        default_project_id = self.env.context.get('default_project_id')
        return default_project_id if default_project_id else None
  project_id = fields.Many2one('project.project', default=_get_default_project_id)

前端弹出新的页面的时候,就可以直接获取上个页面的默认值

猜你喜欢

转载自blog.csdn.net/myt2000/article/details/86598940