Как отобразить поля динамического выбора, основанные на выбранном значении формы в Odoo 12? - PullRequest
1 голос
/ 18 октября 2019

Я использую Odoo 12 и пытаюсь отобразить в полях выбора, в formView,

первое поле выбора имеет 2 значения, но второе поле выбора имеет 4 значения, 2 для каждого выбранного поля из первогополе выбора.

Я даю фиктивный код, поскольку я не могу показать производственный код.

  1. mainfile.py содержимое

    Класс MainClassFile (models.Model):

            first_field = fields.Selection([ ('first':'Item-1'), ('second':'Item-2')],string="first-Selection")
    
            second_field = fields.Selection([('1','one')
                                                 ,('2','two')
                                                 ,('3','three')
                                                 ,('4','four')],
                                                string='Only-two-fields')
    
    
    @api.onchange('first_field')
    def show_two_fields_only(self):
        if self.first_field == 'first':
            return {'domain':{second_field = fields.Selection([('1','one')
                                                     ,('2','two')]
       else 
           return {'domain':{second_field = fields.Selection([('3','three')
                                                     ,('4','four')]
    
  2. XML-файл для того же py-файла, имеющий вид формы:

           <group name="default" col="4" colspan="2">
                                   <field name="first_field" required="1" default_focus="1"  onchange="show_two_fields_only('first_type'/>
                                   <field name="second_field" required="1"/>
           </group>

как я могу фильтровать домен second_field, основываясь на значении, выбранном из first_field,

например. если first_value выбрано 'first', то форма должна показывать только значения second_field как (1,2),

, если first_value выбрано 'second', тогда форма должна показывать только значения second_field как (3,4),

как выпадающий список выбора?

...