Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
4 Trả lời
6895 Lượt xem

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!

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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')
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 7 22
4602
3
thg 12 21
4371
2
thg 12 17
16877
0
thg 4 15
3908
1
thg 3 15
9455