Skip to Content
Menu
This question has been flagged
4 Replies
6060 Views

Hello, during a custom module upgrade I'm facing a weird error.

Traceback (most recent call last):
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/http.py", line 687, in dispatch
    result = self._call_function(**self.params)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/http.py", line 348, in checked_call
    result = self.endpoint(*a, **kw)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/http.py", line 916, in __call__
    return self.method(*args, **kw)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/http.py", line 535, in response_wrap
    response = f(*args, **kw)
  File "/home/thecowmilk/dev/odoo15/odoo/addons/web/controllers/main.py", line 1351, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/home/thecowmilk/dev/odoo15/odoo/addons/web/controllers/main.py", line 1339, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/api.py", line 464, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/api.py", line 451, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "", line 2, in button_immediate_install
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/addons/base/models/ir_module.py", line 483, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/addons/base/models/ir_module.py", line 600, in _button_immediate_function
    registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/modules/registry.py", line 87, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/modules/loading.py", line 474, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/modules/loading.py", line 363, in load_marked_modules
    loaded, processed = load_module_graph(
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/modules/loading.py", line 198, in load_module_graph
    registry.setup_models(cr)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/modules/registry.py", line 290, in setup_models
    model._setup_fields()
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/models.py", line 3049, in _setup_fields
    field.setup(self)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/fields.py", line 464, in setup
    self.setup_nonrelated(model)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/fields.py", line 2370, in setup_nonrelated
    assert self.selection is not None, "Field %s without selection" % self
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/http.py", line 643, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/thecowmilk/dev/odoo15/odoo/odoo/http.py", line 301, in _handle_exception
    raise exception.with_traceback(None) from new_cause
AssertionError: Field res.partner.user_is without selection


I don't understand what does "field .... without selection" means. How to fix this ?? Thanks!

Avatar
Discard
Best Answer

Hi,

The error message "AssertionError: Field res.partner.user_is without selection" usually occurs when you are trying to create a new field without specifying a selection list.

Here are the steps to resolve this error:

  1. Check if you have defined the "user_is" field in the "res.partner" model. If you have not defined this field yet, you can add it to the model as follows:

python:-

from odoo import fields, models

class ResPartner(models.Model):
_inherit = 'res.partner'

user_is = fields.Selection([
('true', 'True'),
('false', 'False')
], string="User is", default='false')

In this example, we have added a new field called "user_is" to the "res.partner" model with a selection list of two options ('true' and 'false').

  1. If you have already defined the "user_is" field, make sure that you have specified a selection list. For example:

user_is = fields.Selection(selection=[
('true', 'True'),
('false', 'False'),
], string="User is", default='false')

Regards

Avatar
Discard
Best Answer

The "Field is without Selection" error occur when you have a Selection field with only one selection:

Bad:

customer_type = fields.Selection([('silver','Silver')], string='Customer Type')​ <==only one option

Good:

customer_type = fields.Selection([('silver','Silver'),('gold','Gold')], string='Customer Type')​ <==two options


Avatar
Discard
Best Answer

Probably you created a field named user_is on res.partner model of type selection with no selection option given. add some selection options and default value to the field definition i.e



    user_is = fields.Selection([        ('super_admin', 'Super Admin'),        ('admin', 'Admin'),        ('visitor', 'Visitor'),        ('portal_user', "Portal User")    ], string='User Is',default='super_admin')
Avatar
Discard
Best Answer

I'm also having the same problem and am unable solve to this answer. plz help

Avatar
Discard
Related Posts Replies Views Activity
2
Jul 22
3732
3
Dec 21
3472
2
Dec 17
15869
0
Apr 15
3215
1
Mar 15
8805