在Odoo中筛选新发票的可用合作伙伴

在Odoo中筛选新发票的可用合作伙伴,odoo,Odoo,在Odoo中创建发票时,我想筛选“客户”的可用合作伙伴选择。具体地说,我想将合作伙伴联系记录限制为“发票地址”类型的记录,即[('type','=','invoice')]的resu partner上的域 谁能给我指一下正确的方向吗 我可以看到,res\u partner.\u name\u search将接受Args,从models.py中的代码看,Args可能是必需的域,成为where子句。但是,我看不到如何在xml(或其他任何地方)中指定这一点。Customer下拉列表的标准xml是 r

在Odoo中创建发票时,我想筛选“客户”的可用合作伙伴选择。具体地说,我想将合作伙伴联系记录限制为“发票地址”类型的记录,即
[('type','=','invoice')]
resu partner
上的域

谁能给我指一下正确的方向吗

我可以看到,
res\u partner.\u name\u search
将接受Args,从
models.py中的代码看,Args可能是必需的域,成为where子句。但是,我看不到如何在xml(或其他任何地方)中指定这一点。Customer下拉列表的标准xml是


res\u partner\u search\u mode
看起来很有希望,但似乎只用于设置
客户排名
,所以这里没有帮助。也许只是覆盖_name_search来过滤记录??我很高兴能得到任何帮助。谢谢

试试这样吧

<field name="partner_id" widget="res_partner_many2one" domain="[('type','=','invoice')]" ...```

已解决。Paxmees的建议不起作用(XML中的域似乎没有流向python代码中的任何地方)。但是_name_search中的args原来是一个域。所以我为_name_search做了一个覆盖:

    def _name_search(self, name, args, operator, limit, name_get_uid=None):
        restrict = self.env.context.get('restrict_types')
        if restrict == 'invoice':
            args.append(('type', '=', restrict))
        return super()._name_search(name, args, operator=operator, limit=limit, name_get_uid=name_get_uid)
然后在xml中为我希望发生这种情况的视图添加了控制上下文:

    <xpath expr="//field[@name='partner_id']" position="attributes">
          <attribute name="context">{'restrict_types': 'invoice'}</attribute>
    </xpath>

{'restrict_types':'invoice'}
这样行。谢谢你阅读我的问题