跳至内容
菜单
此问题已终结
1 回复
16866 查看

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 :)


形象
丢弃
最佳答案

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.

 

形象
丢弃
相关帖文 回复 查看 活动
1
3月 21
4105
1
1月 23
2211
0
7月 20
3315
1
7月 19
6745
1
8月 23
1882