请给我一个自定义模块,这里是一个捕获内容:
然后我去销售订单并修改模块sale.order.line,添加一些与我的自定义模块相关的字段
现在我的请求是在ligne contra中,我只希望在ligne cont中
例如,如果我选择 Contrat 01 (仅在 Contrat 01 中像这样)
这是我的代码:
答案 0 :(得分:1)
您可以在XML的字段定义中使用域:
<field name="contrat_name_id"/>
<field name="contrat_lignes_id" domain="[('ligne_ids', '=', contrat_name_id)]"/>
这将过滤contrat_lignes_id以仅显示ligne_ids与您在该行上为contrat_name_id输入的内容匹配的记录。
答案 1 :(得分:1)
如果需要,@ djames所做的操作仅在此表单视图中有效
在您所有的sale.order.line
视图中都使用python
为您完成这项工作。
class bons_lines(model.Model):
_inherit = 'sale.order.line'
# your new fields
....
....
@api.onchange('contrat_name_id')
def onchange_contrat_name(self):
if self.contrat_name_id:
# add the domain
self.contrat_lignes_id = False # force the user to reselect the contrat_lignes_id if he changes the contrat name
return {'domain': {'contrat_lignes_id': [('ligne_ids', '=', self.contrat_name_id.id)]}}
else:
# remove the domain
return {'domain': {'contrat_lignes_id': []}}
这样,您不必在声明的每个XML视图中添加域。