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

Hello,

I have an issue when updating selection field in an onchange function, here is my python code :


class Billard(models.Model):
_name = 'billard'
name = fields.Char()
value = fields.Integer()
value2 = fields.Float(compute="_value_pc", store=True)
value3 = fields.Selection(string="Selection",selection=[('pair','Pair'),('impair','Impair')],default = 'impair')
value4 = fields.Selection(string="Selection dependante",selection = [('1','1'),('3','3'),('5','5')])
description = fields.Text()
   boule_id = fields.One2many('boules','billard_id')

@api.onchange('value3')
def get_selection(self) :
if self.value3 :
if self.value3 == "impair" :
self.value4 = [('1','1'),('3','3'),('5','5')]
else :
self.value4 = [('2','2'),('4','4'),('6','6')]
else :
self.value4 = [('1','Select Value 3')]

I get this error on forme view : ValueError: Wrong value for billard.value4: [('1', '1'), ('3', '3'), ('5', '5')]

Did i anything wrong ?

thank you :)


Avatar
Descartar
Mejor respuesta

Hello !

You can not change the Selection field selection property from onchange . you can only change the Value of the selection field (Selected Value from the already selection keys and values).

To achieve what you want  you have to create the Object . use many2one to that object instead of the selection field .

And return the domain in the Onchange . that will work properly .

You can also use the widget="selection" in the xml file for m2o  or use no_create option that will give look and feel for selection field.

 

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
1
mar 21
3576
1
ene 23
1661
0
jul 20
2937
1
jul 19
6034
1
ago 23
1416