This question has been flagged
1 Reply
3827 Views

Hi,

I am pretty new creating my custom modules. What I want to do is to create a 'custom_id' for each user based on the input of other of the fields. 

So I have a readonly field like this

'IdNumber': fields.char('Id Number', readonly=True),

And then I have

'CountryID': fields.char('Country ID', required=True),

'father_name': fields.char('Last Name', required=True),

What I want to do is to generate the IdNumber when the user inputs the data for CountryId and father_name. For example CountryID+father_name

I simply need a tip in the right direction and I will try to figure it out from there. I guess I have to use a fields.function for my IdNumber but I would like some clarification.

 

Thanks!

 

Avatar
Discard

In v8 ,you can use compute method and v7 you can use fields.function

Best Answer

My suggetion is to create private method and decorate it with @api.onchange decorator. This will cause Odoo v8 to call this method whenever the fields specified in the decorator are changed (in your case the fields CountryID and father_name. Inside the method you can assign the new valude to the IdNumber field, and this value will be stored (check this example https://www.odoo.com/forum/help-1/question/odoo-8-api-onchange-example-how-to-copy-field-value-to-other-field-74838)

If you are trying this in V7, than the way the oncall is defined is different. In V7, you neet to place the "store" attribute on the filed and specify which model/fields to be monitored and which function/lambda to be called when the fields are modified. 

Avatar
Discard
Author

Thanks a lot Jordan. I am wondering, how did you learn about the existence of the @api.onchange? Is there any documentation (like wordpress codex for example) you suggest me to read? Thanks

You can find more details on this page: https://www.odoo.com/documentation/8.0/reference/orm.html#module-openerp.api