Skip to Content
मेन्यू
This question has been flagged
3 Replies
2240 Views
Hi i have created a field named as count_books by inheritace after creating the field it is shown in the model
of odoo but when i search in the pgadmin table(res_partner) the field is not there can anybody help me regarding this.
here is the code:
class ResPartner(models.Model):
_inherit = 'res.partner'
published_book_ids = fields.One2many(
'library.book', 'publisher_id',
string='Published Books')
authored_book_ids = fields.Many2many(
'library.book',
string='Authored Books',
)
count_books = fields.Integer('Number of Authored Books',compute='_compute_count_book')
@api.depends('authored_book_ids')
def _compute_count_book(self):
for b in self:
b.count_books = len(b.authored_book_ids)


Avatar
Discard
Author

but it is showing in the odoo model it mean compute fields can be seen in the odoo models?

Best Answer

Hi Usuma Gull,
It's because your field is compute. Compute field are not store in the DB.
If you want to store it you have to add the parameter store=true.

count_books = fields.Integer('Number of Authored Books',compute='_compute_count_book',store=True)

Avatar
Discard
Best Answer

The computed fields by default are not stored in DB and they are computed and returned when requested. That's mean you can show it in Odoo views and it will be readonly and you can search by it in Odoo UI but you can enable searching and setting value by setting the  search and inverse parameters.

If you want to store it in DB, you want to add store=True and add depends fields in api.depends in computed method so once of the depends fields is changed the computed field will be recalculated and you can search it in Odoo UI.

Please check the Odoo documentation for more details.

Avatar
Discard
Best Answer

Computed filed is not store by default.

just add store=True in your field 

Avatar
Discard
Related Posts Replies Views Activity
2
अग॰ 23
3128
3
दिस॰ 22
33754
1
मार्च 15
4968
1
फ़र॰ 23
7910
7
दिस॰ 23
26162