Odoo 如何在视图上创建one2many字段查询相关表中的2个或更多字段

Odoo 如何在视图上创建one2many字段查询相关表中的2个或更多字段,odoo,odoo-12,qweb,Odoo,Odoo 12,Qweb,我希望查看project.task.form.quick\u create中的partner\u id字段来查询res.partner.name和res.partner.company\u name 筛选器_域不工作 域仅适用于固定值 以下是视图project.task.form.quick\u create: <form> <group> <field name="name" string="Task Ti

我希望查看
project.task.form.quick\u create
中的
partner\u id
字段来查询
res.partner.name
res.partner.company\u name

  • 筛选器_域不工作
  • 域仅适用于固定值
以下是视图
project.task.form.quick\u create

<form>
    <group>
        <field name="name" string="Task Title"/>
        <field name="partner_id" options="{'no_quick_create': True, 'no_create_edit' : True}" 
          filter_domain="['|', ('company_name','ilike',self),('name','ilike',self)]"/>
        <field name="user_id" options="{'no_open': True,'no_create': True}" eval="False" />
    </group>
</form>

不,不可能按照自己的方式做自己想做的事情。 正如@CharifDZ所指出的,您必须覆盖名称搜索。
这是你应该怎么做的

class ResPartner(models.Model):
_名称='res.partner'
_继承='res.partner'
@api.model
定义名称搜索(self,name,args=None,operator='ilike',limit=100):
args=args或[]
如果名称:
args+=['|',('name','ilike',name),('company_name','ilike',name)]
名称=“”
返回super(ResPartner,self).name\u搜索(name=name,args=args,operator=operator,limit=limit)

对于这种行为,您需要覆盖
name\u search
,因为它是启动时由多个字段调用的方法typing@CharifDZ谢谢,它起作用了。这不是我所期望的,因为它可能会使用filter_domain更改搜索字段的行为,那么直观地说,应该可以以相同的方式更改多个字段的行为。遗憾的是,事实并非如此。如果您只想在一个视图中执行此操作,则可以在one2many中传递上下文,并且在搜索ManyOne字段时将传递该键。因此,您所要做的就是检查上下文,如果many2one不在one2many中,则需要在窗口操作中传递上下文键。