Skip to Content

Contributors

Re: Technical help on odoo cache framework

> Hi, if you have cache issues, sometimes it may be useful to call

> `invalidate_cahce` (

> https://github.com/odoo/odoo/blob/36c2c7f04cc4fb63df17fcadb2eee6c5ea2e0a80/

> odoo/models.py#L5190 [1] ) for the records/fields you are working on. It may

> help you fix your code or better understand why it isn't working as is.

very often the culprit is not declaring all dependencies in @api.depends. When 
you do that right, the framework takes care of updating the cache

by Holger Brunn <holger@brunn.email> - 03:40 - 24 Apr 2020

Reference

  • Technical help on odoo cache framework
    Hi everyone,

    I'm working on extending the mrp module but I'm stuck on a technical issue that could come from a lack of knowledge of the 12.0 odoo framework since I'm coming from 6.1

    An Odoo server in raised on the UI with the message 'stock.move(311659,).product_type' when I create a new mrp.production record but no traceback is available neither in the UI or the server log/console.
    After some step-by-step debugging I finally found the culprit, an exception CacheMiss is raised when I try to access the `product_type` field of the mrp.production.move_raw_ids One2Many fields.
    Do you have some tips for me that would help me to understand what is failing in my code ?

    class MrpProduction(models.Model):
        _inherit = 'mrp.production'

        @api.multi
        def _generate_moves(self):
            super(MrpProduction, self)._generate_moves()
            for production in self:
                # Assign consumable immediatly
                consu_move_ids = production.move_raw_ids.filtered(
                    lambda r: r.product_type == 'consu'
                )
                consu_move_ids._action_assign()

    odoo-cachemiss.jpg
    Regards,
    Yann Papouin



    by Yann Papouin - 01:16 - 24 Apr 2020