首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在odoo的many2one字段中限制“创建和编辑”权限

在odoo的many2one字段中限制"创建和编辑"权限,可以通过以下步骤实现:

  1. 创建一个新的模型(Model),用于存储many2one字段的数据。
  2. 在该模型中定义一个字段(Field),用于关联到另一个模型。
  3. 在该模型中定义一个用户(User)字段,用于记录创建和编辑该记录的用户。
  4. 在该模型中定义一个计算字段(Computed Field),用于判断当前用户是否有权限编辑该记录。
  5. 在视图(View)中,将many2one字段替换为新创建的模型的字段,并设置相应的权限。

下面是一个示例代码:

代码语言:txt
复制
from odoo import models, fields, api

class MyModel(models.Model):
    _name = 'my.model'
    
    name = fields.Char(string='Name')
    related_model = fields.Many2one('other.model', string='Related Model')
    user = fields.Many2one('res.users', string='User', default=lambda self: self.env.user)
    can_edit = fields.Boolean(compute='_compute_can_edit', string='Can Edit')
    
    @api.depends('user')
    def _compute_can_edit(self):
        for record in self:
            record.can_edit = record.user == self.env.user or self.env.user.has_group('base.group_system')

在上述示例中,我们创建了一个名为"my.model"的新模型,其中包含了一个many2one字段"related_model",一个用户字段"user",以及一个计算字段"can_edit"。计算字段"_compute_can_edit"通过判断当前用户是否与记录的用户相同,或者当前用户是否属于系统管理员组来确定是否有权限编辑该记录。

接下来,在视图中使用新模型的字段替换many2one字段,并设置相应的权限。例如,在XML视图中:

代码语言:txt
复制
<record id="my_model_form_view" model="ir.ui.view">
    <field name="name">my.model.form.view</field>
    <field name="model">my.model</field>
    <field name="arch" type="xml">
        <form>
            <sheet>
                <group>
                    <field name="name"/>
                    <field name="related_model" options="{'no_create_edit': True}"/>
                    <field name="user" readonly="1"/>
                    <field name="can_edit" invisible="1"/>
                </group>
            </sheet>
        </form>
    </field>
</record>

在上述示例中,我们使用了"options"属性将"related_model"字段的"no_create_edit"选项设置为True,以禁止创建和编辑相关模型的记录。同时,我们将"user"字段设置为只读(readonly="1"),并将"can_edit"字段设置为不可见(invisible="1")。

这样,当用户在创建或编辑"my.model"记录时,只能选择现有的相关模型记录,并且无法创建或编辑相关模型的记录。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

odoo 开发入门教程系列-模型之间关系(Relations Between Models)

模型之间关系(Relations Between Models) 上一章介绍了为包含基本字段模型创建自定义视图。然而,在任何真实业务场景,我们都需要不止一个模型。此外,模型之间链接是必要。...参考: 本主题相关文档可查阅 Many2one 在我们房地产模块,我们想定义房地产类型概念,例如,房屋或公寓。...提示: 别忘记在 __init__.py导入新Python模块文件,并在__manifest.py__添加数据或者访问权限。...comodel,必须在comodel定义Many2one 字段 练习 添加房地产报价表 创建 estate.property.offer 模型,并添加以下字段: Field Type Attributes...当我们通过one2many字段创建记录时,为了方便,会自动填充相应many2one 添加odoo14\custom\estate\models\estate_property_offer.py #!

4.5K40

odoo ORM API学习总结兼orm学习教程

这些实例表示每个数据库上可用模型,取决于该数据库上安装模块。每个实例实际类都是从创建和继承相应模型Python类构建。...XML ID列表,groups='base.group_user,base.group_system',可限制字段只能被给定组用户访问。...参数: comodel_name (str) – 目标模型名称 inverse_name (str) – 目标模型反向Many2one字段名称,根据该字段反向查询记录 domain – 用于设置客户端候选值条件...取决于字段属性,添加一个默认公司条件 limit (int) – 读取时用可选限制 注意:odoo不会在当前模型对应表为One2many,Many2many类型属性建立对应字段,但会为Many2one...Many2many 或者 One2many 字段 related 可以用于引用另一个模型 One2many 或Many2many 字段,前提是通过当前模型一个Many2one关系来实现

13.5K10
  • odoo 权限管理学习总结

    res_partner表,那么在odoo如何区分用户类型以及如何做权限控制呢?...) ORM字段可以具有提供组列表groups属性(值为逗号分隔组XML ID列表,groups='base.group_user,base.group_system')注意:groups属性值格式...如果当前用户不在列出,他将无权访问该字段: 将自动从请求视图中删除受限制字段 从fields_get()响应删除受限制字段 尝试(显式)读取或写入受限字段会导致访问错误 修改estate...注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中,对该字段实现统一权限控制话,需要在模型定义,为目标字段添加groups...Roles 编辑用户,勾选图中角色,保存,发现和角色关联权限组都会被自动勾选了。

    10.2K20

    odoo wizard界面显示带复选框列表及勾选数据获取

    TransientModel类扩展Model并重用其所有现有机制,具有以下特殊性: wizard记录不是永久;它们在一定时间后自动从数据库删除。...wizard可以通过关系字段many2one或many2many)引用常规记录或wizard记录,但常规记录不能通过many2one字段引用wizard记录 详细代码 注意:为了更清楚表达本文主题...,供web端使用,用于区分不同页面操作数据,'estate.property.offer_3'为供web端使用记录ID,'data'键值代表记录数据,其id键值代表记录在数据库主键id,context...> 说明: saveSelectionsToSessionStorage 为"true"则表示点击复选框时,将当前选取记录存到浏览器sessionStorage,可选 odoo14\custom\estate...access_demo_wizard_model,access_demo_wizard_model,model_demo_wizard,base.group_user,1,1,1,1 注意:wizard模型也是需要添加模型访问权限配置

    5.3K60

    odoo 开发入门教程系列-计算字段和变更(Computed Fields And Onchanges)

    然而,我们可能需要给定模型字段之间链接。有时,一个字段值是根据其他字段值确定,有时我们希望帮助用户输入数据。...自然地我们将总面积定义这两者总和,我们将为此使用计算字段概念,即给定字段值将从其他字段值中计算出来。 到目前为止,字段已直接存储在数据库并直接从数据库检索。字段也可以被计算。...在这种情况下,不会从数据库检索字段值,而是通过调用模型方法来动态计算字段值。 要创建计算字段,请创建字段并将其属性compute设置为方法名称。...定义一个适当inverse函数这样,以便用户可以编辑 create_date或 validity。...> 重启服务,浏览器验证(参考本章目标第二个动画视图) 其它信息 默认,计算字段不会存到数据库,因此,不可能基于计算字段进行搜索,除非定义一个search 方法。

    3.2K30

    何在 CentOS 8 上安装 Odoo 13

    这个指南讲解了如何在 CentOS 8 上一个 Python 虚拟机环境从源码安装 Odoo 13。我们将会从 Github 上编译 Odoo 源码并且配置 Nginx 作为反向代理服务器。...一、前提条件 你需要以 root 或者其他有 sudo 权限用户身份登录,以便完成整个安装过程。...想要启用多进程,你需要编辑 Odoo 配置文件,并且设置一个非 0 工作进程数字。工作进程数字,基于 系统 CPU 核心数字和可用 RAM 内存来计算。...十二、总结 这篇指南带你浏览了如何在 CentOS 8 上 Python 虚拟环境 安装 Odoo 13,并使用 Nginx 作为反向代理服务器。...我们展示了如何在生产环境如何启用多进程以及优化 Odoo

    4K20

    odoo 开发入门教程系列-基本视图

    在上一章已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段。 视图是在带有操作和菜单XML文件定义。...它们是ir.ui.view model实例。 在我们estate模块,我们需要以逻辑方式组织字段: 在列表(树)视图中,我们希望显示不仅仅是名称。 在表单视图中,应该对字段进行分组。...其最基础版本仅简单列出要在表显示所有字段(其中每个字段都是一列): ,由高层框架元素(group和notebook)和交互元素 (按钮和字段): ...在odoo,domain对记录上条件进行编码:domain是用于选择模型记录子集条件列表。每个条件都是一个包含字段名、运算符和值三元组。

    3.3K40

    在Ubuntu 16.04上安装Odoo 11堆栈

    replicauser用户具有比odoo用户更少权限,因为replicauser唯一目的就是让从服务器从主节点读取信息。...例如,第一行允许从节点使用 replicauser 用户连接到主节点,第二行授予odoo用户连接到所有服务器数据库权限。...all:匹配服务器所有数据库。如果您事先了解它们,则可以提供特定Odoo数据库名称(如果有多个,则用逗号分隔)。 odoo:负责应用程序/数据库通信Odoo用户。...您可以将此限制为仅包含您认为安全IP地址。 wal_level:设置为replica执行所需操作。 min_wal_size:事务日志最小大小。...使用上面介绍方法,您将在同一版本更新Odoo应用程序,而不是升级到较新Odoo版本。

    8.9K30

    从安装到使用——Odoo常见问题及故障处理

    小九今天分享了Odoo一键部署、高效安装图文详解,接下来,针对Odoo使用过程一些问题,小九整理了详细常见问题问答。这样直观方式往往能快速高效地解决一些疑惑。...不可以 9.如何修改上传文件权限?...这是由于 Nginx 默认安装下,上传文件最大为 1M,因此需要修改 Nginx 这个限制: 使用 WinSCP 远程连接服务器 编辑 Nginx 虚拟机主机配置文件 插入一行 client_max_body_size...0; 解除上传文件限制配置项 server { listen 80; server_name _; client_max_body_size 0; #解除上传文件限制 ......程序源码或目录有操作权限,需要执行一下命令: sudo chmod o+rw /usr/lib/python2.x/dist-packages/odoo # odoo10版本 sudo chmod

    6.3K30

    Odoo开发指北 01 初识Odoo

    然后使用自己模块:把自己模块路径设置到odoo,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...Odoo提供ORM接口匹配,也就是说这些模型类会自动存入sql。...security:对模块访问权限控制,在ir.model.access.csv文件定义。还可以新建一个record_rule.xml,在其中进行更细化权限控制。...static:静态资源文件,css、js等 views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述) init.py manifest.py:描述文件 脚手架命令   使用...Odoo 脚手架 odoo-bin scaffold 命令新建了我们 aaa 应用 …/odoo-bin scaffold aaa 模块开发流程 分析模块模型,得出模型所需字段有哪些,然后定义模型类

    2.4K30

    xwiki开发者指南-一分钟创建App

    这有一个限制:你最多可以使用一个标题/内容字段应用程序。...) sheet,用于显示和编辑应用程序条目( Holiday RequestSheet) template,当创建一个新应用程序条目,编辑时提供默认值 (Holiday RequestTemplate...这样,你就可以精确地控制哪些用户允许编辑应用程序以及普通用户无法编辑应用程序。 能够控制哪些用户通过在数据页面和其子页面设置允许或拒绝编辑权限来控制添加新条目或编辑/删除现有条目。...字段配置面板 字段配置面板在类编辑 (一分钟App向导第二步)可以轻松进行定制。你可以控制字段类别列表和每个类别字段类型。...基本上,当你在应用程序添加新"External Image"字段时,该属性模板将被会复制。 保存就大功告成了。现在,让我们创建一个新应用程序,或者你也可以编辑现有的。

    8.3K30

    odoo 开发入门教程系列-一些用户界面

    这是因为,在odoo中加载CSV文件比加载XML文件更快。 odoo,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件记录来定义。...view_mode 可获取视图。本例为列表(树)和表格视图。 odoo到处都可以找到例子,但是这个 简单action好例子。关注XML 数据文件结构,因为你在后续练习中会用到。 <?...然而,菜单总是遵循一种体系结构,实际上有三个层次菜单: 根菜单,显示在App切换器Odoo社区版切换器是一个下拉菜单) 第一级菜单,显示在顶部栏 动作菜单 最容易方式是在XML文件定义结构来创建菜单...Odoo有许多微调方式,但通常第一步是确保: 某些字段有默认值 某些字段只读 当记录重复时,某些字段不能被拷贝 在我们房产业务案例,我们希望:: 售价只读(往后将自动填充) 当记录重复时,可用日期和售价不能被拷贝...我们看到一些属性,required=True,会影响数据库表模式。其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性到字段

    3K30

    ODOO配置文件etcodoo.conf配置详解

    **基本参数 Odoo通过端口5432通过UNIX套接字连接到本地postgres。...应将其设置为随机生成值,以确保第三方不能使用此接口。 所有数据库操作都使用数据库选项,包括数据库管理界面。要使数据库管理界面正常工作,PostgreSQL用户必须具有createdb权限。 ...多处理是通过配置非零数量工作进程来实现,工作进程数量应该基于机器核心数量(可能有一些空间供cron工作进程使用,这取决于预测cron工作量) 可以根据硬件配置配置工作进程限制,以避免资源耗尽...工作进程数量计算 数量规则:(#CPU * 2) + 1 Cron工作者需要CPU 1个工作进程~=6个并发用户 内存大小计算 我们认为20%请求是繁重请求,而80%是简单请求 一个繁重工作,当所有的计算字段都设计好了...这样做时,您需要将更多http头转发给Odoo,并在Odoo配置激活代理模式,让Odoo读取这些头。

    7.3K31

    Acrobat Pro DC 2023 for Mac(PDF编辑器) 中文

    它内置了丰富工具,文字编辑器、图片编辑器、注释工具、表单填写器等,帮助用户在PDF文档中进行各种编辑和添加注释操作。...此外,它还支持将PDF文件转换为其他格式,Word、Excel、PowerPoint等,以满足用户不同需求。 Acrobat DC 2023还具有数字签名和加密功能,可以确保文档安全性和完整性。...id=NzY4OTU4Jl8mMjcuMTg3LjIyNi4xMjM%3D 图片 软件功能: PDF创建和编辑:可以创建、编辑和导出PDF文件,包括将其他文档格式(Word、Excel、PowerPoint...安全性和保护:可以设置密码保护PDF文件,以及限制文档访问、打印、复制和编辑权限。 PDF表单:可以创建交互式表单,包括添加表单字段、按钮、下拉框、复选框等。...另外,Acrobat DC 2023还拥有OCR(光学字符识别)功能,可以将扫描纸质文档转换为可编辑PDF文件,大大方便了用户操作。

    69530

    专业测评:5款热门免费报表软件

    编辑切换为居中添加图片注释,不超过 140 字(可选)​编辑切换为居中添加图片注释,不超过 140 字(可选)1、微VeryReport 微VeryReport,是专业企业级报表软件,持续深耕报表分析领域...具备良好个性化需求扩展能力,提供权限控制扩展。 3、QReport QReport可以协同数据库一起工作,帮助用户分析重要信息。...通过QReport软件,可以很容易地生成自己报表,也可以通过相关操作和设计来生成复杂和专用报表。它通过组件形式整合到软件开发人员数据库应用。...5、Grid++ Report Grid++ Report特别适用于信息管理系统,ERP、进销存、财务等软件报表开发。是完全可编程报表工具,能制作动态报表。...总结: 目前企业使用免费报表软件首选是微软件-VeryReport,好用,核心是可以快速响应客户需求。

    1.2K30

    Python自动化操作sqlite数据库

    轻型数据库,遵守 ACID 关系型数据库管理系统,它包含在一个相对小 C 库。 D.RichardHipp 建立公有领域项目。...Python 自带 sqlite3 这个库,方便且直接建和读取 sqlite3 数据库。...3. sqlite 创建表格 3.1 sqlitestudio 介绍 本节内容目的,是教大家如何在非代码情况下,创建 sqlite3 数据库文件和表格编辑操作。...鼠标右键点击 Tables,然后选择新建表格,在新出界面,写表格名、字段名和字段类型,如下图: 方法一: 图片 方法二: 图片 --- 图片 图片 Table Name 表格名,输入具体名称。...最上方框那个按钮,是增列字段按钮,点击按钮弹出中间字段信息,输入字段名、类型、大小等。 这里写了id title content author 四个字段信息,然后点击绿色勾,保存表格即可。

    1.9K30

    kubernetes-ResourceQuota

    在本文中,我们将详细介绍KubernetesResourceQuota功能,包括如何创建和配置ResourceQuota对象,以及如何在Kubernetes集群中使用ResourceQuota来管理资源...创建和配置ResourceQuota在Kubernetes,用户可以使用YAML文件创建和配置ResourceQuota对象。...其中,hard字段指定了限制使用量,例如,这里限制了CPU使用量为1个核心,内存使用量为1GB,Pod数量不超过10个。...除了上述限制外,用户还可以配置其他限制,例如:limits.cpu:限制Pod容器使用CPU数量limits.memory:限制Pod容器使用内存数量requests.storage:限制Pod...总结在本文中,我们介绍了KubernetesResourceQuota功能,包括如何创建和配置ResourceQuota对象,以及如何在Kubernetes集群中使用ResourceQuota来管理资源

    32931

    MySQL必会核心问题50讲(高の青)

    性能优化问题:查询速度慢数据库响应时间长高并发下性能下降根源:缺乏索引或索引设计不合理不合理查询语句(全表扫描)硬件资源不足(CPU、内存、I/O)数据库配置参数设置不当解决思路:创建和优化索引:根据查询需求创建合适索引...安全审计问题:数据泄露风险权限管理混乱根源:用户权限设置不当对敏感数据缺乏加密措施解决思路:细粒度权限控制:为用户分配最小权限,避免越权访问。...测试恢复流程:定期演练恢复流程,确保备份有效性和可靠性。异地备份:将备份数据保存在异地,以防止自然灾害或事故导致数据丢失。6.如何在MySQL实现高效索引优化?...范围查询字段放最后:在联合索引,将范围查询字段放在最后,以减少范围查询对索引影响。避免逻辑操作:不要在索引列上进行逻辑操作(计算、函数、类型转换等),因为这会导致索引失效。...配置文件编辑:在配置文件设置必要参数,log-bin、server-id等,以确保主库能够生成binlog并被从库正确读取。

    41450

    安装Elgg创建自己在线社交网站

    然而Elgg是从其他社交网络,每个配置项,上传文件等不同,可以分配给自己限制。...借助粒度活动流API,您插件会向所有用户推送所需内容。 API插件可让您构建和添加所需功能,创建视频,编辑,添加标题,标记视频说明。 在Elgg,你可以找到社区和个人文件存储库。...然而,强烈建议增加PHP内存限制为128MB或256MB,并增加上传文件大小为10MB。 默认情况下,这些设置在Elgg目录.htaccess文件已添加。...本文介绍了如何在RHEL,CentOS ,Fedora , 科学Linux和Ubuntu,Linux Mint和Debian系统安装和设置Elgg深度指示。...cp settings.example.php settings.php 您选择编辑打开settings.php文件。

    2.5K10

    MassCMS With APIJSON最佳实践

    安全性APIJSON支持数据权限控制和访问控制,可以对返回数据进行过滤和限制。GraphQL可以通过定义查询和变更类型来精确控制数据访问和修改权限。...GraphQL具备一定灵活性,但是对于返回数据结构定制性稍逊一筹。安全性APIJSON通过自动化数据权限控制机制,可以根据用户角色和权限限制接口访问。...GraphQL可以通过限制查询能力和使用权限认证来提供安全性,但需要手动实现和配置。...为每个内容类型定义字段,并选择适当字段类型,文本、日期、图像等。你还可以设置关系字段,以关联不同类型内容,将产品与文章进行关联。3....创建和管理内容使用 MassCMS 管理界面,你可以创建和管理内容实例。通过选择合适内容类型和填写字段值,你可以创建新内容实例,并设置其属性。你可以随时更新和编辑内容,以满足业务需求。4.

    60720
    领券