openerp的视图结构是以XML的格式存放于ir.ui.view表中,属于静态格式,设计之后就固定,
但可以通过在model中重写fields_view_get函数,在视图加载时修改arch属性,动态修改视图的结构
def fields_view_get(self, cr, uid, view_id=None,view_type='form',context=None,toolbar=False,submenu=False):
ip_obj = self.pool.get('hr.rule.input')
res = super(hr_inputs_editor,self).fields_view_get(cr,uid,view_id,view_type,context,toolbar,submenu)
if view_type=='form':
treev = res['fields']['line_ids']['views']['tree']
doc = etree.XML(treev['arch'])
for node in doc.xpath("/tree/field"):
name = node.get('name',False)
if name.startswith('value'):
name = name.replace('value','input') + '_code'