2017-05-22 2 views
0

Wie können wir die abhängige Auswahl von Land-> Land-> Stadt in Odoo erstellen?Loading Land -> Bundesland -> Stadt in Odoo

  • Zum Beispiel -
    • Ausgewählte Land = USA
      • die
    • State = Texas, Kalifornien, Ohio, Alle Zustand US geladen werden .. etc,
      • Ausgewählter Zustand = Texas
      • Bei Auswahl des Status werden alle Städte im ausgewählten Status geladen.
    • Ort = Austin, Huston, ..etc.

Wie können wir dies in Odoo erreichen?

Ich habe unten Code in model.py erstellt

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 Datei direkt unter Code:

<field name="country"/> 
<field name="state"/> 
<field name="city"/> 

Antwort

0
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"/> 
Verwandte Themen