2016-11-16 55 views
0

我有模型存储为运动员和树视图插入来自动态地隐藏在树视图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”,它会更改为等等 。

回答

0

即使使用attrs或直接使用不可见属性,也无法有条件地隐藏树视图中的字段。

原因是树形视图包含多个记录,所以无法隐藏1个记录的字段,而对其他人可见,因为标题对所有记录都是通用的。这就是为什么隐形在树视图中不能有条件工作的原因。

是但它将静态(非动态)像工作,

invisible="1" or invisible="True" 

您可以使用只读属性,如果有条件树视图是editble。

+0

有道理,谢谢 –