如何过滤 Many2one 值依赖于另一个字段?
How to filter Many2one value depend another field?
请给我一个自定义模块,这是一个捕获:
然后我转到销售订单并修改模块 sale.order.line 我添加一些与我的自定义模块相关的字段
现在我的请求是在合同中,我只想要合同中的合同
例如,如果我选择 Contrat 01 only ligne in Contrat 01 这样
这是我的代码:
您可以在 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 输入的内容匹配的记录。
如果您愿意,@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 视图中添加域。
请给我一个自定义模块,这是一个捕获:
然后我转到销售订单并修改模块 sale.order.line 我添加一些与我的自定义模块相关的字段
现在我的请求是在合同中,我只想要合同中的合同
例如,如果我选择 Contrat 01 only ligne in Contrat 01 这样
这是我的代码:
您可以在 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 输入的内容匹配的记录。
如果您愿意,@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 视图中添加域。