【求学】关于selection字段动态填充选项
-
大家好,请教一下关于Selection字段动态填充选项的问题。
描述:
我有一个文件,从文件读取了两个列表List_A和List_B。
视图中有两个Selection类型字段Slct_A 和Slct_B。
Slct_A 有两个选项 [('La','La'),('Lb','Lb')]
Slct_B 最初没有选项,根据Slct_A的选择,给Slct_A动态增加值(List_A和List_B)。
可以实现吗?昨天弄了一下午了,好像没这么玩的。
PS:只有一个文件可让我用,用不了domain,onchange貌似也不行,报错list no get attribute -
用many2one做吧
-
@l732893879 你好,我的数据诗词用文本中获取的,不能用M2O吧
-
采用计算字段试试,
-
个人认为,利用many2one或者many2many类型的控件 应该可以解决这个问题(List_A和Slct_B要单独声明一个类)。
____________________________________________________________________________________________1、声明两个类 Slct_A 和 Slct_B(继承models.Model)。
2、List_A和List_B的值 你可以获取到,然后把获取的值,插入到Slct_B的模型里,这样Slct_B控件就可以进行选择。
3、在要用到Slct_A 和 Slct_B这两个字段的模型(target_model)中,添加字段以及显示控件。py: slct_a = fields.Many2one(comodel_name='slct_a',string=u'下拉控件A') slct_b = fields.Many2many(comodel_name='slct_b',relation='model_name_slct_b',string=u'下拉控件B') xml: <field name="slct_B" widget="many2many_tags"/>
4、在target_model,定义 Slct_B 字段的 onchange 方法,Slct_B 控件发生变化,清空 Slct_A 模型中的所有数据,然后再根据 Slct_B 控件的值,插入对应数据。
@api.onchange('slct_b') _onchange_for_slct_b (self): value_of_slct_b = self.slct_b if value_of_slct_b : # step1:清空 Slct_A 模型中的所有数据,可以用原生sql。 # step2:根据value_of_slct_b向Slct_A插入相应值。
我觉得上面的思路可以说得通,但我没写代码,你可以验证一下,不过,如果操作很频繁对数据库可能会有一定的压力。希望对你有帮助。
-
@guwenfengvip163-com 感谢,我去验证一下