Skip to Content
Menu
This question has been flagged
2 Replies
7875 Views

good afternoon,

I am adding two columns to the uom_uom table, and updating the values ​​but I am getting the following error.

('UoM category Unit should only have one reference unit of measure.', None)

I don't understand exactly what you mean.

I will appreciate your help,

thank you very much.

models:

class ProductUom(models.Model):

    _inherit = "uom.uom"

    code=fields.Char(string="Codigo")

    description=fields.Char(string="Descripcion")

view:

<?xml version="1.0" encoding="UTF-8"?>

<odoo>

    <data noupdate="0">

        <record id='uom_uom_unit' model='uom.uom'><field name='category_id'>1</field><field name='name'>number of international units</field><field name='code'>NIU</field><field name='description'>number of international units</field></record>

    </data>

</odoo>

file product.uom.csv

id,code,description

uom.uom_uom_unit,NIU,number of international units

***the files are added in the manifest.

odoo release: odoo12

Odoo Server Error
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 757, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 662, in _tag_record
    record = model.with_context(rec_context)._load_records([data], self.mode == 'update')
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3821, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3735, in _load_records_create
    return self.create(values)
  File "<decorator-gen-98>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 452, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/addons/uom/models/uom_uom.py", line 103, in create
    return super(UoM, self).create(vals_list)
  File "<decorator-gen-3>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 452, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3516, in create
    records = self._create(data_list)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3648, in _create
    records._validate_fields(name for data in data_list for name in data['stored'])
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 1108, in _validate_fields
    check(self)
  File "/usr/lib/python3/dist-packages/odoo/addons/uom/models/uom_uom.py", line 95, in _check_category_reference_uniqueness
    raise ValidationError(_("UoM category %s should only have one reference unit of measure.") % (self.env['uom.category'].browse(uom_data['category_id']).name,))
odoo.exceptions.ValidationError: ('UoM category Unit should only have one reference unit of measure.', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 654, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 312, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 696, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 344, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 337, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 939, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 517, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 966, in call_button
    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 954, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 749, in call_kw
    return _call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 736, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-67>", line 2, in button_immediate_upgrade
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 73, in check_and_log
    return method(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 614, in button_immediate_upgrade
    return self._button_immediate_function(type(self).button_upgrade)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 553, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 86, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 417, in load_modules
    force, status, report, loaded_modules, update_module, models_to_check)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 313, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 222, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package, report=report)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 68, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 801, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 864, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 754, in parse
    self.parse(rec, mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 763, in parse
    exc_info[2]
  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 86, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 757, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 662, in _tag_record
    record = model.with_context(rec_context)._load_records([data], self.mode == 'update')
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3821, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3735, in _load_records_create
    return self.create(values)
  File "<decorator-gen-98>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 452, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/addons/uom/models/uom_uom.py", line 103, in create
    return super(UoM, self).create(vals_list)
  File "<decorator-gen-3>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 452, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3516, in create
    records = self._create(data_list)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3648, in _create
    records._validate_fields(name for data in data_list for name in data['stored'])
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 1108, in _validate_fields
    check(self)
  File "/usr/lib/python3/dist-packages/odoo/addons/uom/models/uom_uom.py", line 95, in _check_category_reference_uniqueness
    raise ValidationError(_("UoM category %s should only have one reference unit of measure.") % (self.env['uom.category'].browse(uom_data['category_id']).name,))
odoo.tools.convert.ParseError: "UoM category Unit should only have one reference unit of measure.
None" while parsing /mnt/extra-addons/efact/data/product_uom.xml:4, near
<record id="uom_uom_unit" model="uom.uom"><field name="category_id">1</field><field name="name">number of international units</field><field name="code">NIU</field><field name="description">number of international units</field></record>
Avatar
Discard
Best Answer

Hello GiancaFTx,


You are trying to create a new unit of measure with named "number of international units" and you have assigned the category Units.


But you didn't defined the type of unit of measure. So by default type field value will be "Reference".


And in odoo, user can't create unit of measure for same category with same reference. And "Unit" uom already defined in odoo with category "1" with type "Reference". 

Regards,




Email:   odoo@aktivsoftware.com

Skype: kalpeshmaheshwari

   

Avatar
Discard
Best Answer

Starting with Odoo 12.0, you are not allowed to define more than one reference unit for a particular UoM category anymore.

Before Odoo 12.0:
You could have several reference units per category, example: category Unit(s): bottle, unit, piece(s) etc. all could be a reference unit.

Starting with odoo 12.0:
Keep the original reference unit for each category and add your new UoMs with the type "bigger than the reference unit" (for example) and add a factor of 1.0

Avatar
Discard