This question has been flagged
4 Replies
5083 Views

Hello,
How can Odoo store field's data if the field has property "Store=False" ?


I have the example with property_account_income_id and property_account_expense_id , it is the bond between a product_template and an account when I install Accounting module

it is not stored in the database but it stand in odoo therefore. 

Is it in cache ? 

Is it in the object ? if it is in the object it should disapear if the server is rebooted ?

Thank you

Avatar
Discard
Best Answer

Do it "Store=False" to "Store=True"

Avatar
Discard

Yes It's working for me.

Author

@Muhammad Imran Yes sure, it will write in the database, but my question is How it is stocked if store is at false ?

Best Answer

You are correct. The environment also stores caches.

I'm not sure at 100%, but non-stored fields, as transient models, are not stored in the DB but they stand for a while.
What I usually do is, in the case of transient models, when i create some records on it, remove them right after use them (for instance, when you want to recalculate the records from scratch).

So you could do the same on temporary-stored fields: once they are computed, set them to false.

Avatar
Discard
Author

Ok so you says if it's not stored in the BD it's stored in the cache, but this cache is never reseted ?

After I saw your answer I have checked the models and it's "class ProductTemplate(models.Model):" (not a transient model)

sorry I think i've missunderstood what you said.

What I said about Transient models was just an example.

About non-stored fields, for sure they are not stored in the DB, but they are 'computed' and returned everytime when requested. So you could think the value will dissapear if your server is rebooted or your cache is cleared, but fortunately the value is recalculated everytime you load the related model.