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

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)

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值