我想搜索依赖于另一个字段的one2many字段的记录.
这是我的代码,
家长班:
class SaleOrder(models.Model): _inherit = 'sale.order' customer_product_ids = fields.One2many('product.product', compute='_get_partner_products') order_line = fields.One2many('sale.order.line', 'order_id')
儿童班:
class SaleOrderLine(models.Model): _inherit = 'sale.order.line' order_id = fields.Many2one('sale.order') product_id = fields.Many2one('product.product')
视图
view.ata.sale.order.form.inherit sale.order [('id', 'in', [rec.id for rec in parent.customer_product_ids])]
默认情况下,客户可以查看定义的所有产品.
在我的情况下,我需要过滤产品取决于客户选择.
每个客户可以拥有不同的列表产品,或者如果他们没有分类,他们可以看到所有产品.
我尝试了上面的代码,但得到了错误:
Uncaught Error: Expected "]", got "(name)"
我想错误来自这段代码:
[('id', 'in', [rec.id for rec in parent.partner_product_ids])]
我的问题,
是否有可能像上面的代码(在视图中)做python循环理解?
谢谢.
在您的情况下,您需要使用onchange
动态域并将其返回到one2many字段
你应该有这样的事情:
@api.onchange('partner') def onchange_partner(self): ids=search for products that have this partner then return some thing like this {'domain': {'Many2one or One2many': [('id', 'in', ids)}}
我不会为你编写代码,所以你必须搜索onchange
并应用它.你可以在这里找到一些信息.