【问题标题】:How to make a field readonly for a particular group in Open Erp 7?如何在 Open Erp 7 中为特定组设置只读字段?
【发布时间】:2014-07-17 08:18:30
【问题描述】:

我有一个字段,我想让它对组中的所有用户都是只读的,比如说 base.group_userA。任何其他用户都可以编辑和保存该字段。我如何在 openerp 中做到这一点?我已经为所有用户设置了所有 CRUD 访问权限。

'WO_NOTES' : fields.text("Description"), 

在xml中

<field name="WO_NOTES"/>

【问题讨论】:

    标签: python xml openerp openerp-7 usergroups


    【解决方案1】:

    我遇到了同样的问题,只是我只想向组中的用户显示字段。我通过继承视图解决了这个问题并对特定组进行了更改。

    在您的情况下,它应该如下所示:

    <?xml version="1.0"?>
    <openerp>
        <data>
    <record model="ir.ui.view"  id="view_id">
        <field name="name">view.id</field>
        <field name="model">your.model</field>
        <field name="inherit_id" ref="id_of_inherited_view"/>
        <field name="groups_id" eval="[(6, 0, [ref('base.group_userA') ])]"/>
        <field name="arch" type="xml">
            <field name="WO_NOTES" position="attributes">
                <attribute name="readonly">1</attribute>
            </field>
        </field>
    </record>
        </data>
    </openerp>
    

    希望这会有所帮助!

    --- 稍微修改一下我的答案---

    我假设你有你的表单视图,所有用户都可以正常工作(所有用户都可以编辑 WO_NOTES)。通过此继承,更改将仅发生在属于 base.group_userA 的用户中,将其属性更改为只读(仅针对该字段且仅针对该组中的用户)。

    &lt;field name="WO_NOTES" position="attributes"&gt; &lt;attribute name="readonly"&gt;1&lt;/attribute&gt;&lt;/field&gt; 部分将在父视图中定位该字段并将其设为只读。 &lt;field name="groups_id" eval="[(6, 0, [ref('base.group_userA') ])]"/&gt; 将此更改限制为指定的组。

    【讨论】:

    • 嗨,感谢您的回答,但我正在寻找的只是将一个字段设为只读,针对特定组,而不是该视图中的所有字段,我可以知道您为什么需要一个按钮?
    • 你是对的,它不是一个按钮,它是一个字段(从我的代码中复制它,在我的情况下我隐藏了按钮,忘记将其更改为“字段”)。我编辑了我的答案,还添加了有关此继承的更多说明。
    • 它不起作用,没有错误,但是当我更新模块时,它一直在加载并且永远不会更新。
    • 确保您创建的 view_id 不存在。或者尝试创建一个新数据库并安装您的模块。
    • 我用新 id 创建了一个新视图,现在可以使用了,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    相关资源
    最近更新 更多