I'm trying to update One2many field inside onchange method.
As documentation says I'm using update method, and not standard CRUD methods like create.
I have this piece of code:
class HrExpenseSheet(models.Model):
_inherit = "hr.expense.sheet"
@api.onchange('employee_id')
def _update_expense_ids(self):
# define variables ...
values = {
'product_id': product_id,
'name': name,
'product_uom_id': product_uom_id,
'unit_amount': unit_amount,
'quantity': quantity,
'total_amount': total_amount
}
self.update({'expense_line_ids':[(0, 0, values)]})
It almost works. I get my record added to the table but after that whole table just breaks... When this code executes couple things happen:
I'm not able to save the document because supposedly required unit_amount is not filled in - it clearly should be
When I'm trying to edit that particular line I'm not able to because it takes me to a completely new record without my data filled in (but data is present on the table view)
I'm not able to add new row because when I click the button I get error psycopg2.errors.InvalidTextRepresentation: invalid input syntax for type integer: "virtual_2509" LINE 1: ...mpany_id" = 1)) AND (("hr_expense"."id" not in ('virtual_2...
What the hell is happening. I've had the same code running on version 8.0 without problem but this does not work on 13.0.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Contabilidad
- Inventario
- PoS
- Project
- MRP
Se marcó esta pregunta
1
Responder
4567
Vistas
Hi,
Try update your code like below.
@api.onchange('employee_id')
def _update_expense_ids(self):
# define variables ...
values = [{
'product_id': product_id,
'name': name,
'product_uom_id': product_uom_id,
'unit_amount': unit_amount,
'quantity': quantity,
'total_amount': total_amount
}]
self.update({'expense_line_ids': [(6, 0, values)]})
Hope it helps
Does not work. I get an error
File "/usr/lib/python3/dist-packages/odoo/api.py", line 745, in get
value = self._data[field][record._ids[0]]
TypeError: unhashable type: 'dict'
¿Le interesa esta conversación? ¡Participe en ella!
Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.
InscribirsePublicaciones relacionadas | Respuestas | Vistas | Actividad | |
---|---|---|---|---|
|
0
jul 22
|
3666 | ||
|
1
ene 21
|
3375 | ||
|
0
dic 21
|
3080 | ||
One2many field domain not working
Resuelto
|
|
2
dic 21
|
6009 | |
On change is not triggered
Resuelto
|
|
1
ene 21
|
5123 |