使用组隐藏字段

Hide field using group

我想为一些不在组中的用户隐藏该字段。 字段:phone,模块:res_partner

为此,我通过添加组覆盖了该字段:

from odoo import api, fields, models


class Partner(models.Model):
    _inherit = 'res.partner'

    phone = fields.Char(groups='cmz_security_contacts.field_invisible_from_contacts')

创建的群组:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="0">
         <record id="group_contact_user" model="res.groups">
            <field name="name">User</field>
            <field name="category_id" ref="base.module_category_contacts"/>
            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
        </record>

        <record id="group_contact_manager" model="res.groups">
            <field name="name">Manager</field>
            <field name="category_id" ref="base.module_category_contacts"/>
            <field name="implied_ids" eval="[(4, ref('group_contact_user'))]"/>
            <field name="users" eval="[(4, ref('base.user_root'))]"/>
        </record>

        <record id="field_invisible_from_contacts" model="res.groups">
            <field name="name">Field invisible from contacts</field>
            <field name="users" eval="[(4, ref('base.user_root'))]"/>
        </record>
    </data>
</odoo>

具有“用户”权限的“普通”用户。当我单击某些联系人时:错误:“域中的未知字段 phone” 为什么?

编辑:

如何在 partner_form_send_sms_form_view 中找到 mobile 按钮?

我想你没有在域中使用 phone 字段。

很多视图都继承了合作伙伴视图,sms.partner_form_send_sms_form_view视图添加了一个按钮(Send SMS),它使用attrs(attrs="{'invisible':[('phone', '=', False)]}")中的phone字段。

即使您更改它,在检查 phone 字段值 (t-if="record.phone.raw_value">) 的看板视图中也会出现错误 (TypeError: dict.record.phone is undefined),但您可以简单地避免这种情况通过在尝试获取其值之前检查 phone 字段是否存在。

您需要根据您的更改更新合作伙伴视图,因为您只允许给定组的用户访问该字段。

Kenly,我想隐藏'email':

email = fields.Char(groups='cmz_security_contacts.field_invisible_from_contacts')

但是当我选择联系人时: 由于安全限制,请求的操作无法完成。请联系您的系统管理员。

(文档类型:联系人,操作:已读)-(用户:125,字段:电子邮件) 如果仅在字段上设置了限制,为什么我会收到此消息? 为什么我没有为字段 phone 和 mobile 获取它? 谢谢