Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
3 Odpovědi
2241 Zobrazení
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
Zrušit
Autor

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

Nejlepší odpověď

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
Zrušit
Nejlepší odpověď

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
Zrušit
Nejlepší odpověď

Computed filed is not store by default.

just add store=True in your field 

Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
2
srp 23
3128
3
pro 22
33754
1
bře 15
4968
1
úno 23
7910
7
pro 23
26162