如何基于Odoo 12中的值选择的formview显示动态选择字段?

时间:2019-10-18 07:57:04

标签: odoo odoo-11 odoo-12

我正在使用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. 同一py文件的xml文件,其form-view为:

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

如何根据从first_field中选择的值来对second_field进行域过滤,

例如如果选择的first_value为'first',则表单应仅将second_field值显示为(1,2),

如果选择的first_value为'second',则表单应仅将second_field值显示为(3,4),

作为下拉列表吗?

0 个答案:

没有答案