odoo17 省市区三级联动
class CrmAddLx(models.Model):
_inherit = "res.partner"
qu_id = fields.Many2one("crm.qu", string="区", index=True, domain="[('shi_id', '=', shi_id)]")
shi_id = fields.Many2one("crm.shi", string="市", index=True, domain="[('sheng_id', '=', sheng_id)]")
sheng_id = fields.Many2one("crm.sheng", string="省", index=True)
@api.onchange('sheng_id')
def _onchange_sheng_id(self):
# 作用是当改变省时,清空市和区
self.shi_id = False
self.qu_id = False
# if self.sheng_id:
# return {'domain': [('shi_id.sheng_id', '=', self.sheng_id.id)]}
# else:
# return {'domain': []}
@api.onchange('shi_id')
def _onchange_shi_id(self):
self.qu_id = False
# if self.shi_id:
# return {'domain': {'qu_id.shi_id', '=', self.shi_id.id}}
# else:
# return {'domain': {'qu_id': []}}
在字段中直接domain比在onchage中要好