Ajuda

0

key = 'default_' + name TypeError: must be str, not int (Odoo 13)

Avatar
khanhqn

Hello,

Im trying to load default values for one2many tree view(model_c.py) fields in the user's form views (model_b.py)

The code like that:

lstd_treeview = fields.One2many('model.c', 'Key')

The button 'Accept' :

 @api.model

    def accept(self, fields):

    lstd = {

            'name': self.name.id,

            'thamchieu': self.thamchieu,

            'thoigian': self.thoigian,

            'bhxh': self.bhxh,

            'bhtn': self.bhtn,

            'bhxh_mucdongnld': self.bhxh_mucdongnld,

            'bhxh_mucdongcty': self.bhxh_mucdongcty,

            'bhtn_mucdongnld': self.bhtn_mucdongnld,

            'bhtn_mucdongcty': self.bhtn_mucdongcty,

            'bhyt_mucdongnld': self.bhyt_mucdongnld,

            'bhyt_mucdongcty': self.bhyt_mucdongcty

        }

   res = super(Modelb, self).default_get(fields)

        lstd_treeview = []

        gt_dc = self.env["model.b"].search([])

        for line in gt_dc:

            line = (0, 0, {

                'lstd': line.lstd

            })

        lstd_treeview.append(line)

        res.update ({

            'lstd_treeview': lstd_treeview,

        })       

        return res  

I got the error like that:

Odoo Server Error
Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/http.py", line 624, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/odoo/src/odoo/odoo/http.py", line 310, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 14, in reraise
    raise value
  File "/home/odoo/src/odoo/odoo/http.py", line 669, in dispatch
    result = self._call_function(**self.params)
  File "/home/odoo/src/odoo/odoo/http.py", line 350, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/http.py", line 339, in checked_call
    result = self.endpoint(*a, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 915, in __call__
    return self.method(*args, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 515, in response_wrap
    response = f(*args, **kw)
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1331, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1319, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 383, in call_kw
    result = _call_kw_model(method, model, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 356, in _call_kw_model
    result = method(recs, *args, **kwargs)
  File "/home/odoo/src/odoo/addons/baohiem/models/dieu_chinh.py", line 123, in chapthuan
    res = super(DieuChinh, self).default_get(fields)
  File "/home/odoo/src/odoo/odoo/models.py", line 1230, in default_get
    key = 'default_' + name
TypeError: must be str, not int

Please help!

Thank you!


Avatar
Descartar