如何制作两个选择字段取决于彼此odoo 10?

时间:2017-05-14 19:46:38

标签: openerp odoo-10

我有一个选择领域男性或女性,如果男性我想要第二个 选择领域的丈夫或兄弟或父亲,如果女性我想要第二选择领域的妻子或姐妹或女儿

here you are my code :

class Relatives(models.Model):
    _name = 'custom_employee.relatives'
    name = fields.Char(string='Name')
    gender = fields.Selection([('m', 'Male'),('f', 'Female')],default='m')
    relative_relationship = fields.Selection(selection='change_relatives')

    @api.multi
    @api.onchange('gender')

    def change_relatives(self):
        if self.gender == 'm':
          self.relative_relationship.Selection=fields.Selection([('s','Son'),('h', 'Husband'),('f','Father')], default='s',string='Relative Relationship')
        elif self.gender == 'f':
            self.relative_relationship=fields.Selection([('d','Daughter'),('w', 'Wife'),('m', 'Mother')], default='d',string='Relative Relationship')

2 个答案:

答案 0 :(得分:1)

即使在odoo中,你也无法改变onchange中的选择值:

你有两个选择,而不是使用选择字段使用many2one 关系并改变onchange中该字段的域名。

其次是定义两个选择字段并仅显示一个 在使用attrs的基于条件的表单中,您可以 创建包含的计算选择字段 保存所选内容的两个字段的完整列表 两个中的一个的值,因此您可以在其他视图中显示它。 或者对其进行搜索。

答案 1 :(得分:0)

你应该使用API​​取代onchange。  @ api.onchange('gender') - > @ api.depends( '性别')