Odoo Help


[V8] Override old API default function

Aurélien Rivet
on 5/24/16, 8:58 AM 1,020 views

Hi all,

I would like to override an old api default function. Since I can't manage to put my cursor after the code formatting block you will find it at the end of my message. The question is what 'fields' parameter refers to ? How can i get it in new api if I when to call the old api function from the new one ?


def _get_default_base(self, cr, uid, fields, context=None):
     product_price_type_obj = self.pool.get('product.price.type')
     if fields.get('type') == 'purchase':
         product_price_type_ids = product_price_type_obj.search(cr, uid, [('field', '=', 'standard_price')], context=context)
      elif fields.get('type') == 'sale':
         product_price_type_ids = product_price_type_obj.search(cr, uid, [('field', '=', 'list_price')], context=context)
         return -1
     if not product_price_type_ids:
         return False
         pricetype = product_price_type_ids = product_price_type_obj.browse(cr, uid, product_price_type_ids, context=context)[0]
         return pricetype.id

Prakash Sharma

--Prakash Sharma--
--Prakash Sharma--

I like to surround myself with brave, creative people.

My motivation for learning different technologies and algos drive me. I love challenges of a steep learning curve which I believe makes me a better learner. I have a strong desire to learn different technologies, which would enable me to become a full stack developer.

Prakash Sharma
On 5/24/16, 9:51 AM

put @api.model  decorator over the method like:

def _get_default_base(self, fields):
response = super(your_model_name, self)._get_default_base(self._cr,self.uid,fields,self._context)
#do your logic over response

return response

That works but I have to associate the function using the old api: _defaults = { base: _get_default_base } If I associate it using the new api (the 'default' kwarg in the field declaration) it does not work. Also, If i don't write the association my function is never called.

Aurélien Rivet
on 5/24/16, 10:05 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: 5/24/16, 8:58 AM
Seen: 1020 times
Last updated: 5/24/16, 9:51 AM