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)
前端弹出新的页面的时候,就可以直接获取上个页面的默认值