Hello, I have Odoo8.
I have a computed field which definition of method is: def _actualiza_monto(self) so my only parameter is self. In this method I need to call other methods of this class which requires cr, uid and an integer value (in my case is self.id). The method definition is:
def mymethod(self, cr, uid, id_neccesary, context=None): ...
When I try to call the method with syntax self.mymethod(self.env.cr, self.env.uid, self.id, self.env.context) I get the error "5 parameters is needed, 8 given". Why? How it works? Thanks!
You are coding in a method which has API styling... hence your self will be a environment browse variable..
Hence when you are trying to call the method of same object, you need not to pass all the argument,,
just write it like this: self.mymethod()
calling of method is depends on the convention of the object declaration
Say user object and partner object:
parter_obj = self.pool.get('res.partner')
user_env = self.env['res.users']
partner_obj.calling_method(cr, uid, new_partner_id) [Old style since object is declared as Pool]
new_user_browse.calling_method() [API style since object is declared as Environment]
I have written both styling in API style method, hope you got the difference
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 1/8/15, 2:44 PM|
|Seen: 1001 times|
|Last updated: 3/16/15, 8:10 AM|