关于selection字段的问题
-
我有这样的需求,逻辑如下:
假如在第一个selection字段有A,B,C,D四个选项,
当第一个selection字段选择A时,第二个selection字段有1,2,3,4,四个选项
当第一个selection字段选择B时,第二个selection字段有5,6,7,8,四个选项
当第一个selection字段选择C时,第二个selection字段有9,10,11,12,四个选项
请问这样应该如何实现? -
@昱y 在 关于selection字段的问题 中说:
给第二个selection字段添加context,context内容为第一个selection的值,第二个selection的值使用函数的返回值,使用上下文判断,就可以确定返回那几个选项
你确定你在说什么吗:astonished_face: ?????
@billchen0769 在 关于selection字段的问题 中说:
我有这样的需求,逻辑如下:
假如在第一个selection字段有A,B,C,D四个选项,
当第一个selection字段选择A时,第二个selection字段有1,2,3,4,四个选项
当第一个selection字段选择B时,第二个selection字段有5,6,7,8,四个选项
当第一个selection字段选择C时,第二个selection字段有9,10,11,12,四个选项
请问这样应该如何实现?思路是这样的:
你可以设置一个隐藏的计算字段,根据第一个selection字段计算第二个selection字段的可选值。
然后在第二个selection字段上加一个domain,domain的过滤值来自上面的计算字段。
-
此回复已被删除!
-
@昱y
大概是这样写吗?
first_level = fields.Selection(
[('Regular_checks', '常规检查'), ('Transmissibility_photo_examination', '透射性照片检查'),
('In_vitro_examination', '体外检查'), ('Tests_that_reach_into_the_body', '伸进体内的检查'),
('Special_organ_examinations', '特殊器官检查')],
string='检查大类')
second_level = fields.Selection(selection='_get_second_field_options', string='检查分类')def _get_second_field_options(self): options = [] context = self.env.context if context.get('first_level') == 'Regular_checks': options = [('blood_test', '验血'), ('urine_test', '验尿'), ('examination_of_stool', '验便')] elif context.get('first_level') == 'Transmissibility_photo_examination': options = [('x_ray_dr', 'X光 / DR'), ('ct', 'CT'), ('mri', 'MR 核磁共振')] elif context.get('first_level') == 'In_vitro_examination': options = [('b_ultrasound', 'B超'), ('electrocardiogram', '心电图')] elif context.get('first_level') == 'Tests_that_reach_into_the_body': options = [('gastroscope', '胃镜'), ('colonoscopy', '肠镜')] elif context.get('first_level') == 'Special_organ_examinations': options = [('hearing_test', '听力检查'), ('vision_test', '视力检查')] return options
当时不生效。
-
@昱y 在 关于selection字段的问题 中说:
给第二个selection字段添加context,context内容为第一个selection的值,第二个selection的值使用函数的返回值,使用上下文判断,就可以确定返回那几个选项
你确定你在说什么吗:astonished_face: ?????
@billchen0769 在 关于selection字段的问题 中说:
我有这样的需求,逻辑如下:
假如在第一个selection字段有A,B,C,D四个选项,
当第一个selection字段选择A时,第二个selection字段有1,2,3,4,四个选项
当第一个selection字段选择B时,第二个selection字段有5,6,7,8,四个选项
当第一个selection字段选择C时,第二个selection字段有9,10,11,12,四个选项
请问这样应该如何实现?思路是这样的:
你可以设置一个隐藏的计算字段,根据第一个selection字段计算第二个selection字段的可选值。
然后在第二个selection字段上加一个domain,domain的过滤值来自上面的计算字段。
-