我有這樣的模型:class MyDict(models.Model):_name='my_module.my_dict'field1=fields.Char()field2=fields.Char()field3=fields.Char()數(shù)據(jù)看起來像:obj_1 | attr_1 | val_1obj_1 | attr_2 | val_1obj_1 | attr_2 | val_2obj_2 | attr_1 | val_1obj_2 | attr_1 | val_2從另一個模型我想逐步使用這個數(shù)據(jù)class NewModel(models.Model):_name='my_module.new_model'selection1=field.Selection(selection='_get_selection1')selection2=field.Selection(selection='_get_selection2')selection3=field.Selection(selection='_get_selection3')def _get_selection1(self): my_list = [] selection_list = [] full_list = self.env['my_module.my_dict'].search([]) for record in full_list: if record.field1 not in my_list: my_list.append(record.field1) for list_item in my_list: selection_list.append((str(list_item), str(list_item))) return selection_list第二個選擇需要取決于第一個@api.onchange('selection1')def _get_selection2(self): my_list = [] selection_list = [] full_list = self.env['my_module.my_dict'].search([('field1', '=', self.selection1]) for record in full_list: if record.field2 not in my_list: my_list.append(record.field2) for list_item in my_list: selection_list.append((str(list_item), str(list_item))) return selection_list但我在這里發(fā)現(xiàn)了錯誤File "/opt/odoo13/odoo/odoo/models.py", line 5817, in process if res.get('value'):AttributeError: 'list' object has no attribute 'get'我怎樣才能得到 selection_list 取決于第一個選擇
1 回答
紅糖糍粑
TA貢獻1815條經(jīng)驗 獲得超6個贊
看起來唯一的方法是為每個字段制作 3 個模型并將其綁定到 parent_id 和 child_ids 字段
class MyDict1(models.Model):
_name='my_module.my_dict1'
name=fields.Char()
child_ids=fields.One2many('my_module.my_dict2', 'parent_id')
class MyDict2(models.Model):
_name='my_module.my_dict2'
name=fields.Char()
parent_id=fields.Many2one('my_module.my_dict1')
child_ids=fields.One2many('my_module.my_dict3', 'parent_id')
添加回答
舉報
0/150
提交
取消
