首页
学习
活动
专区
工具
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 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 权限管理学习总结

    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 开发入门教程系列-计算的字段和变更(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.4K40

    在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开发指北 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

    从安装到使用——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.6K30

    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.7K31

    将文档管理与学习无缝集成:ONLYOFFICE 与 Moodle 的完美结合

    强大的安全性和权限管理 ONLYOFFICE为文档的协作提供了高级别的安全性,确保只有授权用户可以访问和编辑特定文档。...((ONLYOFFICE 文档服务器)版本4.2.7及以上) 集成插件:在Moodle的插件管理中,安装ONLYOFFICE插件,并根据需要配置相关参数,如文档存储路径、权限设置等。...通过这种集成,Moodle 用户能够直接在课程中创建和编辑文本文档、电子表格、演示文稿、表单和PDF。对于管理员来说,还可以限制 ONLYOFFICE 编辑器中的打印和下载功能。...如何在 Moodle 中创建 ONLYOFFICE 活动 ️ 导航到课程页面: 登录 Moodle 平台,进入您所管理的课程页面。...这一功能使得团队成员可以共同参与文档的创建和修改,无论是进行内容审阅还是协作撰写。

    14010

    hhdb客户端介绍(23)

    行(Row)表中的一条记录,代表一个数据实体。列(Column)表中的字段,代表数据的某个属性或特征。数据库操作查询(Query)使用SQL语句从数据库中检索数据的过程。...索引(Index)用于提高查询速度的数据结构,通常基于表中的一列或多列。数据类型与约束数据类型(Data Type)指定字段中数据的类型,如整数、小数、字符串、日期等。...约束(Constraint)对表中数据的限制条件,如主键约束、唯一约束、非空约束等。客户端界面与功能ER图表(ER Diagram)一种图形化的数据库模型,用于显示数据库中的表、列及其关系。...数据视图(Data View)在客户端中查看和编辑表数据的界面。表设计器(Table Designer)用于创建和修改表结构的图形界面工具。...备份与恢复(Backup and Restore)用于创建数据库备份和在需要时恢复数据库的功能。用户权限(User Privileges)控制用户对数据库和表的访问和操作权限的机制。

    6510

    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文件,大大方便了用户的操作。

    70430

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

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

    1.3K30

    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

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

    36031

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

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

    44850
    领券