This question has been flagged
2 Replies
14438 Views

I am new in odoo and in my module I have created a percentage field which is integer. Now what I want is the percentage input value, from user should be in between 1-100. How can I limit input value in this field in py file?

Avatar
Discard
Best Answer

Hi,

You can write a constraint for the field such a way that it will block the input less than 1 and greater than 100.

@api.one
@api.constrains('field_name')
def _check_value(self):
if self.field_name > 100 or self.field_name < 0:
raise ValidationError(_('Enter Value Between 0-100.'))


Thanks

Avatar
Discard
Author Best Answer

It  is still giving error Cybrosys Techno Solutions Pvt.Ltd
Error:
Odoo Server Error

Traceback (most recent call last):
  File "/opt/odoo12/odoo/odoo/models.py", line 1108, in _validate_fields
    check(self)
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_ui_view.py", line 351, in _check_xml
    self.postprocess_and_fields(view.model, view_doc, view.id)
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_ui_view.py", line 1059, in postprocess_and_fields
    self.raise_view_error(_('Model not found: %(model)s') % dict(model=model), view_id)
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_ui_view.py", line 545, in raise_view_error
    raise ValueError(message)
ValueError: Model not found: tender.manage

Error context:
View `Tender Managemet`
[view_id: 768, xml_id: bhuwan_module.tender_manage_view_tree, model: tender.manage, parent_id: n/a]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo12/odoo/odoo/tools/convert.py", line 757, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/opt/odoo12/odoo/odoo/tools/convert.py", line 662, in _tag_record
    record = model.with_context(rec_context)._load_records([data], self.mode == 'update')
  File "/opt/odoo12/odoo/odoo/models.py", line 3788, in _load_records
    data['record'].write(data['values'])
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_ui_view.py", line 441, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo12/odoo/odoo/models.py", line 3306, in write
    fields[0].determine_inverse(records)
  File "/opt/odoo12/odoo/odoo/fields.py", line 1097, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_ui_view.py", line 275, in _inverse_arch
    view.write(data)
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_ui_view.py", line 441, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo12/odoo/odoo/models.py", line 3269, in write
    self._write(store_vals)
  File "/opt/odoo12/odoo/odoo/models.py", line 3413, in _write
    self._validate_fields(vals)
  File "/opt/odoo12/odoo/odoo/models.py", line 1112, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.exceptions.ValidationError: ('Error while validating constraint\n\nModel not found: tender.manage\n\nError context:\nView `Tender Managemet`\n[view_id: 768, xml_id: bhuwan_module.tender_manage_view_tree, model: tender.manage, parent_id: n/a]', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo12/odoo/odoo/http.py", line 654, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo12/odoo/odoo/http.py", line 312, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/opt/odoo12/odoo/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/opt/odoo12/odoo/odoo/http.py", line 696, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo12/odoo/odoo/http.py", line 344, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo12/odoo/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo12/odoo/odoo/http.py", line 337, in checked_call
    result = self.endpoint(*a, **kw)
  File "/opt/odoo12/odoo/odoo/http.py", line 939, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo12/odoo/odoo/http.py", line 517, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo12/odoo/addons/web/controllers/main.py", line 966, in call_button
    action = self._call_kw(model, method, args, {})
  File "/opt/odoo12/odoo/addons/web/controllers/main.py", line 954, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/opt/odoo12/odoo/odoo/api.py", line 749, in call_kw
    return _call_kw_multi(method, model, args, kwargs)
  File "/opt/odoo12/odoo/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 "/opt/odoo12/odoo/odoo/addons/base/models/ir_module.py", line 73, in check_and_log
    return method(self, *args, **kwargs)
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_module.py", line 613, in button_immediate_upgrade
    return self._button_immediate_function(type(self).button_upgrade)
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_module.py", line 552, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/opt/odoo12/odoo/odoo/modules/registry.py", line 86, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo12/odoo/odoo/modules/loading.py", line 417, in load_modules
    force, status, report, loaded_modules, update_module, models_to_check)
  File "/opt/odoo12/odoo/odoo/modules/loading.py", line 313, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/opt/odoo12/odoo/odoo/modules/loading.py", line 222, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package, report=report)
  File "/opt/odoo12/odoo/odoo/modules/loading.py", line 68, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
  File "/opt/odoo12/odoo/odoo/tools/convert.py", line 801, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/opt/odoo12/odoo/odoo/tools/convert.py", line 864, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/opt/odoo12/odoo/odoo/tools/convert.py", line 754, in parse
    self.parse(rec, mode)
  File "/opt/odoo12/odoo/odoo/tools/convert.py", line 763, in parse
    exc_info[2]
  File "/opt/odoo12/odoo/odoo/tools/pycompat.py", line 86, in reraise
    raise value.with_traceback(tb)
  File "/opt/odoo12/odoo/odoo/tools/convert.py", line 757, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/opt/odoo12/odoo/odoo/tools/convert.py", line 662, in _tag_record
    record = model.with_context(rec_context)._load_records([data], self.mode == 'update')
  File "/opt/odoo12/odoo/odoo/models.py", line 3788, in _load_records
    data['record'].write(data['values'])
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_ui_view.py", line 441, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo12/odoo/odoo/models.py", line 3306, in write
    fields[0].determine_inverse(records)
  File "/opt/odoo12/odoo/odoo/fields.py", line 1097, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_ui_view.py", line 275, in _inverse_arch
    view.write(data)
  File "/opt/odoo12/odoo/odoo/addons/base/models/ir_ui_view.py", line 441, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo12/odoo/odoo/models.py", line 3269, in write
    self._write(store_vals)
  File "/opt/odoo12/odoo/odoo/models.py", line 3413, in _write
    self._validate_fields(vals)
  File "/opt/odoo12/odoo/odoo/models.py", line 1112, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.tools.convert.ParseError: "Error while validating constraint

Model not found: tender.manage

Error context:
View `Tender Managemet`
[view_id: 768, xml_id: bhuwan_module.tender_manage_view_tree, model: tender.manage, parent_id: n/a]
None" while parsing /opt/odoo12/odoo/addons/bhuwan_module/views/tendermanage_view.xml:4, near
<record id="tender_manage_view_tree" model="ir.ui.view">
            <field name="name">Tender Managemet</field>
            <field name="model">tender.manage</field>
            <field name="arch" type="xml">
                <tree>
                    <field name="name_of_company"/>
                    <field name="category"/>
                    <field name="publ_date"/>
                    <field name="subm_date"/>
                    <field name="field_type"/>
                </tree>
            </field>
        </record>

Avatar
Discard

The error does not seem to be related to what you have asked or what we have answered. Please check the code you have written.

Seems the error message says that the model not found. check whether you have defined the model and called the python file in the init file.

Author

Thank you very much I have sort it out.