Odoo Help


Onchange Method [Closed]

on 12/24/14, 11:21 PM 1,502 views

The Question has been closed

on 01/21/2016 23:17:16

I have field city and province . i want if i select city ,province automatically filled.. anyone can help me?

On 12/25/14, 1:40 AM

i have use this code

    def onchange_city(self, city_id):
        if city_id :
            city= self.env['res.country.state'].browse(city_id)
            return {'value': {'provinsi_id': city.name.id}}
        return {}

with .xml

<field name="city_id" onchange="onchange_city(city)"/>

but it doesnt work

@susi you don't need to declare any thing in the xml file. In odoo-v8 we don't need that.

Emipro Technologies Pvt. Ltd.
on 12/25/14, 1:44 AM

@susi please tell me, which version of openerp you are using

Emipro Technologies Pvt. Ltd.
on 12/25/14, 1:45 AM

@susi @api.multi will not work, you should do as I mentioned in my ans. Use @api.onchange

Emipro Technologies Pvt. Ltd.
on 12/25/14, 1:46 AM


You can define the onchange method in following way


def onchange_city(self):

    <<fetch the value based on 'self.city'>>

    self.province=<<fetched value>>


hope this helps !!

sorry i dont understand with method @api.onchange

on 12/25/14, 12:10 AM

@susi this is the way you define the onchange method in the odoo-v8 @api.onchange is the decorator to identify the onchange method in the import section do the following 'from openerp import models,fields,api' for more details.. refer to following line - http://odoo-new-api-guide-line.readthedocs.org/en/latest/decorator.html

Emipro Technologies Pvt. Ltd.
on 12/25/14, 12:16 AM

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 12/24/14, 11:21 PM
Seen: 1502 times
Last updated: 1/21/16, 11:17 PM