在 Odoo 中加载国家 -> 州 -> 城市依赖
Load Country -> State -> City depencency in Odoo
我们如何在 Odoo 中创建 Country->State->City 的依赖选择?
- 例如-
- 所选国家 = 美国
- 这将加载美国的所有州
- 州 = 德克萨斯州、加利福尼亚州、俄亥俄州...等等,
- 所选州 = 德克萨斯州
- 在选择州时,它将加载所选州的所有城市。
- 城市 = 奥斯汀、休斯顿等
我们如何在 Odoo 中实现这一点?
我在 model.py
中创建了以下代码
country = fields.Many2one('res.country',string='Country', help='Select Country')
state = fields.Many2one('state.country',string='State', help='Enter State')
city = fields.Char('City', help='Enter City')
view.xml 文件的代码如下:
<field name="country"/>
<field name="state"/>
<field name="city"/>
state_id = fields.Many2one("res.country.state", string='State', help='Enter State', ondelete='restrict')
country_id = fields.Many2one('res.country', string='Country', help='Select Country', ondelete='restrict')
city = fields.Char('City', help='Enter City')
hide = fields.Boolean(string='Hide', compute="_compute_hide")
# Dependent picklist code to show State based on selected Country E.g India -> Gujarat, Maharastra, Rajasthan, etc..
@api.onchange('country_id')
def _onchange_country_id(self):
if self.country_id:
return {'domain': {'state_id': [('country_id', '=', self.country_id.id)]}}
else:
return {'domain': {'state_id': []}}
# Show Hide State selection based on Country
@api.depends('country_id')
def _compute_hide(self):
if self.country_id:
self.hide = False
else:
self.hide = True
# view.xml
<field name="hide" invisible="1"/>
<field name="country_id" options="{'no_quick_create': True, 'no_create_edit' : True}"/>
<field name="state_id" options="{'no_quick_create': True, 'no_create_edit' : True}" attrs="{'invisible':[('hide', '=', True)]}"/>
<field name="city"/>
我们如何在 Odoo 中创建 Country->State->City 的依赖选择?
- 例如-
- 所选国家 = 美国
- 这将加载美国的所有州
- 州 = 德克萨斯州、加利福尼亚州、俄亥俄州...等等,
- 所选州 = 德克萨斯州
- 在选择州时,它将加载所选州的所有城市。
- 城市 = 奥斯汀、休斯顿等
- 所选国家 = 美国
我们如何在 Odoo 中实现这一点?
我在 model.py
中创建了以下代码country = fields.Many2one('res.country',string='Country', help='Select Country')
state = fields.Many2one('state.country',string='State', help='Enter State')
city = fields.Char('City', help='Enter City')
view.xml 文件的代码如下:
<field name="country"/>
<field name="state"/>
<field name="city"/>
state_id = fields.Many2one("res.country.state", string='State', help='Enter State', ondelete='restrict')
country_id = fields.Many2one('res.country', string='Country', help='Select Country', ondelete='restrict')
city = fields.Char('City', help='Enter City')
hide = fields.Boolean(string='Hide', compute="_compute_hide")
# Dependent picklist code to show State based on selected Country E.g India -> Gujarat, Maharastra, Rajasthan, etc..
@api.onchange('country_id')
def _onchange_country_id(self):
if self.country_id:
return {'domain': {'state_id': [('country_id', '=', self.country_id.id)]}}
else:
return {'domain': {'state_id': []}}
# Show Hide State selection based on Country
@api.depends('country_id')
def _compute_hide(self):
if self.country_id:
self.hide = False
else:
self.hide = True
# view.xml
<field name="hide" invisible="1"/>
<field name="country_id" options="{'no_quick_create': True, 'no_create_edit' : True}"/>
<field name="state_id" options="{'no_quick_create': True, 'no_create_edit' : True}" attrs="{'invisible':[('hide', '=', True)]}"/>
<field name="city"/>