使用组隐藏字段
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” 为什么?
编辑:
继承sms.partner_form_send_sms_form_view
<odoo>
<record id="partner_form_send_sms_form_view_secure" model="ir.ui.view">
<field name="name">res.partner.form.send.sms.secure</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="sms.partner_form_send_sms_form_view"/>
<field name="priority">10</field>
<field name="arch" type="xml">
<xpath expr="//button[@name=%(sms.send_sms_form_action)d]" position="attributes">
<attribute name="groups">cmz_security_contacts.field_invisible_from_contacts</attribute>
</xpath>
</field>
</record>
</odoo>
覆盖 phone
和 mobile
字段以设置 groups
属性
from odoo import api, fields, models
class Partner(models.Model):
_inherit = 'res.partner'
phone = fields.Char(groups='cmz_security_contacts.field_invisible_from_contacts')
mobile = fields.Char(groups='cmz_security_contacts.field_invisible_from_contacts')
如何在 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 获取它?
谢谢
我想为一些不在组中的用户隐藏该字段。 字段: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” 为什么?
编辑:
继承
sms.partner_form_send_sms_form_view
<odoo> <record id="partner_form_send_sms_form_view_secure" model="ir.ui.view"> <field name="name">res.partner.form.send.sms.secure</field> <field name="model">res.partner</field> <field name="inherit_id" ref="sms.partner_form_send_sms_form_view"/> <field name="priority">10</field> <field name="arch" type="xml"> <xpath expr="//button[@name=%(sms.send_sms_form_action)d]" position="attributes"> <attribute name="groups">cmz_security_contacts.field_invisible_from_contacts</attribute> </xpath> </field> </record> </odoo>
覆盖
phone
和mobile
字段以设置groups
属性from odoo import api, fields, models class Partner(models.Model): _inherit = 'res.partner' phone = fields.Char(groups='cmz_security_contacts.field_invisible_from_contacts') mobile = fields.Char(groups='cmz_security_contacts.field_invisible_from_contacts')
如何在 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 获取它? 谢谢