Python 如何使用域筛选器获取特定供应商的采购订单

Python 如何使用域筛选器获取特定供应商的采购订单,python,xml,odoo,Python,Xml,Odoo,我有一个manyOne字段,用于获取供应商表单视图中活动供应商的采购订单。为此,我使用了一个域过滤器,但它不起作用。这是我的密码: _inherit='res.partner' BC=fields.Many2one('purchase.order', string='BC n°1', domain=lambda self: [("partner_id", "=", self.env['res.partner'].browse(self._context.get('active_id'))

我有一个manyOne字段,用于获取供应商表单视图中活动供应商的采购订单。为此,我使用了一个域过滤器,但它不起作用。这是我的密码:

 _inherit='res.partner'  

BC=fields.Many2one('purchase.order', string='BC n°1', domain=lambda self: [("partner_id", "=", self.env['res.partner'].browse(self._context.get('active_id')))])
它给了我一个错误“TypeError:res.partner()不可JSON序列化”
有什么建议吗?

您可以使用xml定义域,它应该是这样的:

  <field name="BC" domain="[('partner_id.id','=',id)]" />


或者说@Drako的评论,换言之:请添加更多信息,并尝试以更容易理解的方式描述您的问题。好的,我想在供应商的表单视图中添加一个manyOne字段。此字段只能选择与活动供应商相关的采购订单。因此,为了满足条件,我在manyOne字段中添加了一个domain属性,但它给出了上面的错误。
browse
方法返回一个记录,但域使用id,因此
[(“partner\u id”,“=”,self.\u context.get('active\u id'))]
将是一个更正确的域,但我真的不确定当你在一个模型里时,什么是活动id。另外,您需要的是One2many,因为您试图获取一个合作伙伴的采购订单。@Harlan,事实上,我不希望获取一个合作伙伴的所有采购订单作为我字段的值,但我希望有一个仅包含当前供应商的采购订单(而不是所有采购订单)的选项,然后,我们可以选择“一”采购订单。这就是为什么我选择了多个带有域筛选器的字段。[(“partner\u id”,“=”,self.\u context.get('active\u id'))也不起作用!