2016-05-24 2 views
0

Я пытаюсь обновить поле выбора, когда другие изменения поля выбора, я попытался это:Как обновить поле выбора через onchange api в Odoo?

class Billard(models.Model): 

    _name = 'billard' 
    name = fields.Char() 

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

    @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 = [('error','error')] 

но я получаю сообщение об ошибке: ValueError: Wrong value for billard.value4: [('1', '1'), ('3', '3'), ('5', '5')]

кажется, что я могу» т повлиять на список в поле выбора, я буду признателен за любую помощь :)

ответ

0

Вы подаете неправильную логику вместо Изменения поля выбора как вычислительных поля и декорировать метод вычислений с использованием зависит как @api.depends('value3')

Теперь поместите вашу логику в методе украшают, который будет возвращать список выбора на основе условий

Я надеюсь, что это может помочь в вашем случае.

+0

Это не работает ... Я изменил свою стратегию, создав классы для value4 и используемые отношения с доменом для фильтрации результата и получения нужного атрибута в файле value4. Спасибо за ваш ответ :) –

Смежные вопросы