【问题标题】:how to make two selection fields depends on each other odoo 10?如何使两个选择字段相互依赖odoo 10?
【发布时间】:2017-05-14 19:46:37
【问题描述】:

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

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

【问题讨论】:

  • 为什么不使用两个选择字段?
  • 我正在使用两个选择字段,但我希望如果我在第一个选择字段中选择男性,我希望第二个选择字段选项是父亲或兄弟或丈夫,在两者之间找到女儿选项是不合逻辑的他们
  • 对不起,我的意思是用两个选择字段替换 relative_relationship 字段,然后您可以根据第一个选择字段 gender 隐藏它们。

标签: openerp odoo-10


【解决方案1】:

即使在 odoo 中,您也无法在 onchange 中更改 selection 的值:

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

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

【讨论】:

    【解决方案2】:

    您应该使用 API 取决于 onchange。 @api.onchange('gender') --> @api.depends('gender')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      相关资源
      最近更新 更多