This question has been flagged
1 Reply
7288 Views

Hi, 

I am learning how to use the compute field under Odoo v8. The example in the docs looks clear and it seems pretty easy, but no mather what I do it doesn't seem to get triggered.

This is the most basic example I am testing which is not working for some reason:

        'total_units': fields.char(compute='_compute_total',string='Number of Units'),
    

    @api.one
    def _compute_total(self):
        print "Show this if triggered"
        self.total_units = 23

For this basic example I was looking to see a '23' on the total_units field, but nothing happens.

Shouldn't _compute_total be triggered each time the tree view is opened? What I am missing?

Any help will be appreciated,

Thanks

Avatar
Discard
Best Answer

Computed fields are triggered on save (DB write).

Avatar
Discard
Author

Hi, thanks. I read in the docs that "computed fields are not stored by default, they are computed and returned when requested. Setting store=True will store them in the database and automatically enable searching" So my understanding was that I can run a compute field if I need results "on the fly". if this is not the case, what type of field can I use to get results on the fly under V8? Thanks so much for your help

You can overwrite read method of your model and change return value for desired field.