Odoo Help


Modify action on button press

on 12/4/14, 2:29 PM 2,043 views

Hello, I want to modify the actions in the system when the user presses "Save" in the Pricelist Item form. (The ID is product.pricelist.item.form) in Odoo 8.

I learn the view, but there isn't a <button> element so I don't know what is the method called when the user presses "Save". How can I know that? So then, have I to override this method?





| 5 3 6
Jakarta, Indonesia
On 12/4/14, 8:32 PM

It is the method "write" and "create".  Save button is not part of the view.

On 12/5/14, 12:43 AM

If you want your save button to do something you should write the below function in your module becozz this function is called when ever save button is clicked....

def create(self, cr, user, vals, context=None):

       ###### something you want#####
        return osv.osv.create(self, cr, user, vals, context=context)

Sorry Anand your code breaks inheritance as it calls osv.osv.create directly. The proper call would be return super(class_name, self).create(cr, user, vals, context=context) on v7.

on 12/5/14, 1:01 AM

yes... you are right... thanks....Ivan

on 12/5/14, 1:09 AM
On 12/4/14, 10:34 PM

Ok, thanks. In what case have I to override "write" and in what case "create"?

write will be executed when an existing record is updated. Note that for write the vals in the method's argument will only contain those data that are updated. So, you might want to read/browse first if you need those data. Also write operates on multiple records (ids in the argument). create is called when a new record is created, the vals argument will contain all fields that are to be written and no ids in the arguments.

on 12/4/14, 10:49 PM

You are very clear. I have understand perfectly. Thanks!

on 12/5/14, 1:11 PM

Sorry, in the case of write, why the ids are a collection? If I am updating a single record

on 12/5/14, 2:38 PM

It is just the way Odoo is written Jose. write expects a list for ids arguments. If you just updates one record, you put it in a list. pool.write(cr, uid, [id], vals, context=context). That'll do.

on 12/8/14, 1:06 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

2 follower(s)


Asked: 12/4/14, 2:29 PM
Seen: 2043 times
Last updated: 3/16/15, 8:10 AM