Skip to content

[17.0] product_pricelist_revision: raising warning on product.pricelist.item name field #1951

@rrebollo

Description

@rrebollo

Warning

👇 These lines are raising the below warning:

class ProductPricelistItem(models.Model):
_inherit = "product.pricelist.item"
_rec_names_search = ["name"] # Initialize here to be able to extend
name = fields.Char(store=True)

Traceback

2025-04-15 21:15:36,131 1 WARNING ? py.warnings: /opt/odoo/custom/src/odoo/odoo/modules/registry.py:372: UserWarning: product.pricelist.item: inconsistent 'store' for computed fields, accessing price may recompute and update name. Use distinct compute methods for stored and non-stored fields.
  File "/opt/odoo/custom/src/islanddeal/00-post-upgrade.py", line 78, in <module>
    main()
  File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.10/site-packages/click_odoo/env_options.py", line 194, in _invoke
    with self.environment_manager(
  File "/usr/local/lib/python3.10/contextlib.py", line 135, in __enter__
    return next(self.gen)
  File "/usr/local/lib/python3.10/site-packages/click_odoo/env.py", line 20, in OdooEnvironment
    ctx = Environment(cr, uid, {})["res.users"].context_get()
  File "<decorator-gen-109>", line 2, in context_get
  File "/opt/odoo/custom/src/odoo/odoo/tools/cache.py", line 104, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/opt/odoo/custom/src/odoo/odoo/addons/base/models/res_users.py", line 810, in context_get
    values = user.read(list(name_to_key), load=False)[0]
  File "/opt/odoo/custom/src/odoo/odoo/addons/base/models/res_users.py", line 1907, in read
    res = super(UsersView, self).read(other_fields, load=load)
  File "/opt/odoo/custom/src/odoo/odoo/addons/base/models/res_users.py", line 645, in read
    return super(Users, self).read(fields=fields, load=load)
  File "/opt/odoo/custom/src/odoo/odoo/models.py", line 3584, in read
    return self._read_format(fnames=fields, load=load)
  File "/opt/odoo/custom/src/odoo/odoo/addons/base/models/res_users.py", line 1866, in _read_format
    return super()._read_format(valid_fields, load)
  File "/opt/odoo/custom/src/odoo/odoo/models.py", line 3797, in _read_format
    vals[name] = convert(record[name], record, use_display_name)
  File "/opt/odoo/custom/src/odoo/odoo/models.py", line 6693, in __getitem__
    return self._fields[key].__get__(self, self.env.registry[self._name])
  File "/opt/odoo/custom/src/odoo/odoo/fields.py", line 1219, in __get__
    self.compute_value(recs)
  File "/opt/odoo/custom/src/odoo/odoo/fields.py", line 1388, in compute_value
    fields = records.pool.field_computed[self]
  File "/opt/odoo/custom/src/odoo/odoo/tools/func.py", line 28, in __get__
    value = self.fget(obj)
  File "/opt/odoo/custom/src/odoo/odoo/modules/registry.py", line 372, in field_computed
    warnings.warn(

There is a similar warning complaining about the compute_sudo.

Reasoning

I think is related to fact that name and price are computed in the same method in builtin class. So when this code is executed name pass to be store=True and in v17 compute_sudo=True implicitly. But price, compute in the same method is store=False and in v17 compute_sudo=False so ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions