动态隐藏树视图odoo 9中的字段和行
dynamicly hide fields and rows in tree view odoo 9
我有模型来存储运动员的训练结果和树视图来插入来自
的结果
型号代码为:
class GeneralFitnessDetails(Model):
_name = 'general_fitness_details'
generalFitnessDetails = Many2one("general_fitness")
player = Many2one('player')
exercise = Many2one("exercise")
exercise_state = Selection([('by_reps', 'By Reps'),
('by_time', 'By Time'),
('by_distance', 'By Distance'),
('by_weight', 'By Weight')])
reps = Integer(string='Reps')
time_sec = Integer(string='Seconds')
weight = Integer(string='Weight/KG')
distance = Integer(string='Distance/Meters')
这里是查看代码
<tree>
<field name="player"/>
<field name="exercise"/>
<field name="exercise_state"/>
<field name="reps" invisible="[('exercise_state', '=', 'by_reps')]"/>
<field name="time_sec" invisible="[('exercise_state', '=', 'by_time')]"/>
<field name="weight" invisible="[('exercise_state', '=', 'by_weight')]"/>
<field name="distance" invisible="[('exercise_state', '=', 'by_distance')]"/>
</tree>
我需要创建一个按钮,它的功能是:onClick,它根据运动状态过滤树视图中显示的列的可见性;因此,如果运动状态的值为 "by_distance",则它仅显示按距离
保存值的列
此外,可见性也必须自动更改,以便如果锻炼状态变为 "by_weight",它会随之更改,依此类推。
您不能有条件地从树视图中隐藏字段,即使使用属性或直接使用不可见属性也是如此。
原因是树视图包含多条记录,因此无法隐藏 1 条记录的字段而其他记录可见,因为 headers 对所有记录都是通用的。这就是为什么不可见在树视图中有条件地工作的原因。
是的,但它会像这样静态(不是动态)工作,
invisible="1" or invisible="True"
如果树视图是可编辑的,您可以有条件地使用只读属性。
我有模型来存储运动员的训练结果和树视图来插入来自
的结果型号代码为:
class GeneralFitnessDetails(Model):
_name = 'general_fitness_details'
generalFitnessDetails = Many2one("general_fitness")
player = Many2one('player')
exercise = Many2one("exercise")
exercise_state = Selection([('by_reps', 'By Reps'),
('by_time', 'By Time'),
('by_distance', 'By Distance'),
('by_weight', 'By Weight')])
reps = Integer(string='Reps')
time_sec = Integer(string='Seconds')
weight = Integer(string='Weight/KG')
distance = Integer(string='Distance/Meters')
这里是查看代码
<tree>
<field name="player"/>
<field name="exercise"/>
<field name="exercise_state"/>
<field name="reps" invisible="[('exercise_state', '=', 'by_reps')]"/>
<field name="time_sec" invisible="[('exercise_state', '=', 'by_time')]"/>
<field name="weight" invisible="[('exercise_state', '=', 'by_weight')]"/>
<field name="distance" invisible="[('exercise_state', '=', 'by_distance')]"/>
</tree>
我需要创建一个按钮,它的功能是:onClick,它根据运动状态过滤树视图中显示的列的可见性;因此,如果运动状态的值为 "by_distance",则它仅显示按距离
保存值的列此外,可见性也必须自动更改,以便如果锻炼状态变为 "by_weight",它会随之更改,依此类推。
您不能有条件地从树视图中隐藏字段,即使使用属性或直接使用不可见属性也是如此。
原因是树视图包含多条记录,因此无法隐藏 1 条记录的字段而其他记录可见,因为 headers 对所有记录都是通用的。这就是为什么不可见在树视图中有条件地工作的原因。
是的,但它会像这样静态(不是动态)工作,
invisible="1" or invisible="True"
如果树视图是可编辑的,您可以有条件地使用只读属性。