我有以下型号:
团体 - 合作伙伴
团体 - 车辆
合作伙伴< - vehicles
通过x_partner_id字段,车辆与合作伙伴(每个合作伙伴可以拥有多条公交车)相关。
我想为每个团队分配一个合作伙伴和一辆公共汽车,可以从另一个合作伙伴那里选择一辆公共汽车。表格如下:
<form>
<sheet string="Groups">
<group col="4">
<field name="x_date_start" modifiers="{}"/>
<field name="x_date_stop" modifiers="{}"/>
<field name="x_partner_id" can_create="true" can_write="true" modifiers="{}"/>
<field name="x_name" modifiers="{}"/>
<field name="x_vehicle_id" can_create="true" can_write="true" modifiers="{}"/>
<field name="x_groupcode" modifiers="{}"/>
<newline/>
<field colspan="4" name="x_stops_id" modifiers="{}"/>
<newline/>
<separator/>
</group>
</sheet>
</form>
现在,如果我在表单上的x_vehicle_id字段中键入任何属性,我可以找到我需要的总线。有人可以给我一个提示,如何在表格中修改此字段以将此搜索扩展到与车辆模型相关的其他模型?因此,如果我输入合作伙伴名称,我只想查看该合作伙伴的公交车。
答案 0 :(得分:0)
因此,如果我理解了您的问题,您希望将x_vehicle_id
限制为仅显示与x_partner_id
相关的车辆?
你需要一个onchange方法。
的内容@api.onchange('x_partner_id')
def onchange_partner_id(self):
return {'domain': {'x_vehicle_id': [('partner_id', '=', self.x_partner_id)]}}
(假设x_vehicle_id
的模型有一个名为partner_id
的字段
每次更改domain
时,这会更改字段x_partner_id
并限制选择。
更新:我误解了这个问题。
如果您想按合作伙伴的名称搜索车辆,则必须覆盖name_search
方法。
@api.model
def name_search(self, name='', args=None, operator='ilike', limit=100):
res = super(<classname here>, self).name_search(name, args, operator, limit=limit)
# Search more results here and add them to res
return res