首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Openerp-7中使一个字段(Field_3)的“用户”和“管理员”可编辑

如何在Openerp-7中使一个字段(Field_3)的“用户”和“管理员”可编辑
EN

Stack Overflow用户
提问于 2015-11-20 15:32:13
回答 1查看 65关注 0票数 0

我已经创建了一个名为'HM-1‘的自定义标题菜单

我在'Menu 1‘中创建了一个名为'Menu 1’的菜单,我创建了3个字段,名为field_1 fileds_2 filed_3。

代码语言:javascript
复制
I created a 'User' and i have two users now
1. Admin
2. User

我的问题是‘如何使一个字段( field_3 )’用户‘和’管理员‘在Openerp-7中可编辑’在‘用户’中的剩余字段应该是只读的,只有field_3应该是可编辑的。

该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2015-11-20 17:00:04

我想到的第一件事就是覆盖fields_view_get,并基于self.env.user.组更改field_1和field_2的只读和修饰符属性当然,您需要将用户分配到特定的组,这与Admin不同。

代码语言:javascript
复制
class example_class(models.Model):

    def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
        res = super(example_class, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
        group = self.pool['ir.model.data'].xmlid_to_object(cr, uid, 'your_group', raise_if_not_found=True, context=context) 
        if view_type == 'form' and group in self.env.user.groups_id:
            doc = etree.XML(res['arch'])
            #this for cycle must be repeated for each field you need to make readonly
            for node in doc.xpath("//field[@name='field_2']"):
                if 'modifiers' in node.attrib:
                    text = node.attrib['modifiers']
                    j = json.loads(text)
                    j['readonly'] = '1'
                else:
                    j = {'readonly': '1'}
                node.attrib['modifiers'] = json.dumps(j)
            res['arch'] = etree.tostring(doc)
        return res
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33821200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档