中菁- odoo  ERP 实施 杭州

示例图片三
首页 > Odoo资讯 > odoo知识库

Odoo 中如何在一个 form 中有条件的显示 field?

2017-02-24 14:02:17 中菁- odoo ERP 实施 杭州 阅读

Odoo 开发中经常会遇到这样的需求,对象中根据条件是否显示一个字段。比如如果不是创建人,不不显示客户的联系方式,Odoo 中如何实现呢?<一>domain在 odoo 中可以根据对象字段的值或者关系确定是否显示一个字段。例1)

<field name="boyfriend_name" attrs="{'invisible':[('married', '!=', False)]}" />

结婚了才公布男朋友的名字。2)

<field name="boyfriend_name" attrs="{'invisible':[('married', '!=', 'selection_key')]}" />

这是动态 domain 的例子,根据选择结构确定字段是否显示。还有一种方式是,可以在 view 中,根据 states 的值确定字段是否显示。<二>view 的state<三>动态视图

  1. def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):  

  2.         if context is None:context = {}  

  3.         res = super(rhwl_gene, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)  

  4.         if res['type']=="form":  

  5.             id = res['id']  

  6.             //根据id去取得资料,并进行判断  

  7.             if 条件成立:  

  8.                 doc = etree.XML(res['arch'])  

  9.                 doc.xpath("//form")[0].set("edit","false")  

  10.                 res['arch']=etree.tostring(doc)  

  11.         return res 


Powered by MetInfo 5.3.15 ©2008-2018 www.metinfo.cn