本文主要是介绍Odoo8.0根据资料的条件来控制画面上的修改、删除按钮显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天有网友在问,当达到某个条件的时候,资料的所有字段都变为只读,传统的方法是在view或model中,逐一对每个字段进行属性设置,这样比较麻烦。后来我在考虑,如果是把所有字段都变为只读,是不是只要屏蔽form界面上的修改按钮就可以了呢?只要用户不能点修改按钮,那相当于就是所有字段为只读了。
经过测试和阅读源码,我们通过如下方法来实现。
在自己的model中,重载框架函数fields_view_get,实例如下:
- def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- if context is None:context = {}
- res = super(rhwl_gene, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
- if res['type']=="form":
- id = res['id']
- //根据id去取得资料,并进行判断
- if 条件成立:
- doc = etree.XML(res['arch'])
- doc.xpath("//form")[0].set("edit","false")
- res['arch']=etree.tostring(doc)
- return res
set中的edit表示修改按钮,如果要控制其它按钮,可以用其它值,create表示新增,delete表示删除。
助顶:http://blog.csdn.net/vnsoft/article/details/47133847
这篇关于Odoo8.0根据资料的条件来控制画面上的修改、删除按钮显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!