在Odoo中筛选新发票的可用合作伙伴
在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
[('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'}
这样行。谢谢你阅读我的问题