Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
2860 Vistas

I added field to account.move.line and i conactenate it with name field  but the error occurs 
this is the code:

class AccountMove(models.Model):
_inherit = 'account.move.line'

hat_qty = fields.Float(string="QTY", compute='_compute_hat_qty', store=True)

@api.depends('product_id', 'move_id')
def _compute_hat_qty(self):
for line in self:
if line.move_id and line.move_id.stock_move_id:
line.hat_qty = line.move_id.stock_move_id.product_uom_qty
else:
line.hat_qty = 1
if
line.name:
line.name=line.name+" QTY = "+str(line.hat_qty)

This is the error:
the error in the cocatenation process any help?

 File "/home/odoo/src/user/hat_quantity/models/account_move.py", line 17, in _compute_hat_qty
    line.name=line.name+"       QTY  =  "+str(line.hat_qty)
  File "/home/odoo/src/odoo/odoo/fields.py", line 1242, in __set__
    records.write({self.name: write_value})
  File "/home/odoo/src/odoo/addons/account/models/account_move.py", line 4876, in write
    self.mapped('move_id')._check_balanced()
  File "/home/odoo/src/odoo/addons/account/models/account_move.py", line 2144, in _check_balanced
    moves = self.filtered(lambda move: move.line_ids)
  File "/home/odoo/src/odoo/odoo/models.py", line 5500, in filtered
    return self.browse([rec.id for rec in self if func(rec)])
  File "/home/odoo/src/odoo/odoo/models.py", line 5500, in 
    return self.browse([rec.id for rec in self if func(rec)])
  File "/home/odoo/src/odoo/addons/account/models/account_move.py", line 2144, in 
    moves = self.filtered(lambda move: move.line_ids)
  File "/home/odoo/src/odoo/odoo/fields.py", line 3402, in __get__
    return super().__get__(records, owner)
  File "/home/odoo/src/odoo/odoo/fields.py", line 2617, in __get__
    return super().__get__(records, owner)
  File "/home/odoo/src/odoo/odoo/fields.py", line 1108, in __get__
    recs._fetch_field(self)
  File "/home/odoo/src/odoo/odoo/models.py", line 3278, in _fetch_field
    self._read(fnames)
  File "/home/odoo/src/odoo/odoo/models.py", line 3296, in _read
    self.flush(fields, self)
  File "/home/odoo/src/odoo/odoo/models.py", line 5661, in flush
    self.recompute(fnames, records=records)
  File "/home/odoo/src/odoo/odoo/models.py", line 6133, in recompute
    if records is not None and not any(
  File "/home/odoo/src/odoo/odoo/models.py", line 6134, in 
    records & self.env.records_to_compute(field)
  File "/home/odoo/src/odoo/odoo/api.py", line 743, in records_to_compute
    return self[field.model_name].browse(ids)
  File "/home/odoo/src/odoo/odoo/api.py", line 540, in __getitem__
    return self.registry[model_name]._browse(self, (), ())
  File "/home/odoo/src/odoo/odoo/models.py", line 5155, in _browse
    records = object.__new__(cls)
Exception

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

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/http.py", line 654, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/odoo/src/odoo/odoo/http.py", line 301, in _handle_exception
    raise exception.with_traceback(None) from new_cause
RecursionError: maximum recursion depth exceeded while calling a Python object


Avatar
Descartar
Mejor respuesta

Hi,

Update your compute function as below:

@api.depends('product_id', 'move_id')
def _compute_hat_qty(self):
for line in self:
if line.move_id and line.move_id.stock_move_id:
hat_qty = line.move_id.stock_move_id.product_uom_qty
else:
hat_qty = 1
if line.name:
line.name = line.name + " QTY = " + str(hat_qty)
line.hat_qty = hat_qty


Thanks

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
3
ene 25
4426
0
sept 21
3255
0
mar 15
5115
3
may 25
6715
2
may 24
1136