如何在关系域odoo上应用域?

时间:2018-12-12 09:28:21

标签: odoo odoo-10

这是我的sale.order.line模块,我做了一些修改 enter image description here

我想在产品上应用一个域,例如,并非所有产品都只显示Ligne合同字段中的产品:

enter image description here

在“我的对比”行中,我只有一个产品,因此在销售订单行中,只有此产品(商品)必须显示

1 个答案:

答案 0 :(得分:3)

在您的sale.order.line中使用onchane事件

   @api.onchange('contrat_id')
   def set_domain(self):
         # force the user to reselect the producg if he changes the contrat line
         self.product_id = False
         if self.contrat_id :
                 return {'domain': {'product_id': [('id',  'in', self.contrat_id.product_ids.ids)]}}
         else: 
                 # remove the domain if no contrat is selected
                 return {'domain': {'product_id': []}}

很抱歉,如果我在语法错误上使用手机,但希望您能理解

编辑

好的,在您的合同模型中,您没有产品模型的many2many字段,相反,我认为您有{2> 1 {2}字段。

因此,假设在此ligne contract关系中该字段的名称为ligne_ids,产品模型中有一个one2many字段,可以说它的名称为many2one

使用map的功能在一行中提取合同木本中的所有产品ID。

product_id

希望这对您有帮助