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

如何在ODOO中动态更改Many2one字段的域

在ODOO中,可以通过重写Many2one字段的域来实现动态更改。Many2one字段是一种关联字段,用于在两个模型之间建立关系。域定义了在Many2one字段中可选择的记录范围。

要在ODOO中动态更改Many2one字段的域,可以按照以下步骤进行操作:

  1. 找到包含Many2one字段的模型。在该模型的Python文件中,可以找到对应的字段定义。
  2. 在字段定义中,找到domain参数。domain参数用于指定Many2one字段的域。
  3. 根据需要,可以使用Python代码动态更改domain参数的值。可以根据其他字段的值、当前用户的权限等条件来动态计算域的值。
  4. 保存文件并重新启动ODOO服务。

下面是一个示例,演示如何在ODOO中动态更改Many2one字段的域:

代码语言:txt
复制
class MyModel(models.Model):
    _name = 'my.model'

    related_model_id = fields.Many2one('related.model', string='Related Model', domain="[('field', '=', dynamic_value)]")

    dynamic_value = fields.Char(string='Dynamic Value')

    @api.onchange('dynamic_value')
    def _onchange_dynamic_value(self):
        # 根据需要进行动态计算域的值
        domain = "[('field', '=', {})]".format(self.dynamic_value)
        self.related_model_id.domain = domain

在上面的示例中,related_model_id字段是一个Many2one字段,它与related.model模型建立关联。domain参数被设置为"[('field', '=', dynamic_value)]",其中dynamic_value是一个Char字段,用于存储动态值。

_onchange_dynamic_value方法是一个触发器,当dynamic_value字段的值发生变化时,会自动调用该方法。在该方法中,可以根据需要动态计算域的值,并将其赋值给related_model_id字段的domain参数。

请注意,上述示例中的代码仅供参考,实际应用中可能需要根据具体情况进行调整。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB)。您可以通过以下链接了解更多关于腾讯云服务器和腾讯云数据库的信息:

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

states (dict) –将state值映射到UI属性-值对列表字典映射,简单说就是允许用户界面依据state字段值来动态设置对应字段UI属性,因此,它要求存在一个state字段并在视图中使用...取决于字段属性,添加一个默认公司条件 limit (int) – 读取时用可选限制 注意:odoo不会在当前模型对应表为One2many,Many2many类型属性建立对应字段,但会为Many2one...Many2many 或者 One2many 字段 related 可以用于引用另一个模型 One2many 或Many2many 字段,前提是通过当前模型一个Many2one关系来实现。...Model.search_count(args) → int[源代码] 返回当前模型匹配提供搜索args记录数....Delegation) 第三种继承机制提供了更大灵活性(可以在运行时更改),但威力更小:使用_inherits模型,将当前模型未找到任何字段查找委托给“children”模型。

13.5K10

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

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

4.5K40
  • odoo 开发入门教程系列-模型和基本字段

    模型和基本字段 在上一章末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。...ORM 层是odoo一个关键组件。该层避免了手动写入大部分SQL并提供可扩展性和安全服务. 业务对象被定义为继承于 ModelPython类。可以通过在定义设置属性来配置model。...最重要属性为 _name,该属性定义了model在odoo系统属性。...有两大类领域字段:‘简单’字段--直接存储在模型表原子值,形如Boolean, Float, Char, Text, Date 和Selection, ‘关系型’ 字段--连接相同或者不同模型记录...自动创建字段(Automatic Fields) 参考: 该话题相关文档可参考 Automatic fields. odoo会在所有model(当然,也可以配置禁止自动创建某些字段)创建少数字段

    2.4K30

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

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

    3.2K30

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

    选取ffers"按钮),弹出一个向导(wizard)界面,并将详情页内联tree视图("Offers" Tab页)列表记录展示到向导界面,且要支持复选框,用于选取目标记录,然执行目标操作。...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

    5.3K60

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

    这是--db filter目的之一:它指定如何根据所请求主机名()选择数据库。该值是一个正则表达式,可能包括动态注入主机名(%h)或访问系统所通过第一个子(%d)。 ...**基本参数 Odoo通过端口5432通过UNIX套接字连接到本地postgres。...打包安装程序将自动创建一个新用户(odoo),并将其设置为数据库用户。 数据库管理界面受管理密码设置保护。此设置只能使用配置文件进行设置,并在执行数据库更改之前进行简单检查。...工作进程数量计算 数量规则:(#CPU * 2) + 1 Cron工作者需要CPU 1个工作进程~=6个并发用户 内存大小计算 我们认为20%请求是繁重请求,而80%是简单请求 一个繁重工作,当所有的计算字段都设计好了...这样做时,您需要将更多http头转发给Odoo,并在Odoo配置激活代理模式,让Odoo读取这些头。

    7.3K31

    odoo 开发入门教程系列-继承(Inheritance)

    在介绍特定Odoo模块继承之前,让我们看看如何更改标准CRUD(创建、检索,更新或删除)方法行为 Python继承(Python Inheritance) 目标: 不能删除状态不为New、Canceled...第一继承机制允许模块通过以下方式修改在另一个模块定义模型行为: 向模型添加字段 覆盖模型字段定义 给模型添加约束 给模型添加方法 重写模型现有方法 第二种继承机制...odoo,第一种机制最常用。在我们例子,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...它arch字段包含多个xpath元素,用于选择和更改父视图内容,而不是单个视图: ...,作为同级元素 attributes 使用xpath主体特定属性元素更改匹配元素属性 当匹配单个元素时,可以直接在要查找元素上设置position属性。

    2.2K20

    odoo 开发入门教程系列-模块交互

    模块交互 在上一章,我们使用继承来修改模块行为。在我们房地产场景,我们希望更进一步,能够为客户生成发票。...Odoo提供了一个开发票模块,因此直接从我们房地产模块创建发票是很简单,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序创建发票 一个具体示例: 记账凭证(Account...不幸是,没有一种简单方法可以知道如何在Odoo创建任何给定对象。大多数时候,有必要查看其模型,以找到所需字段并提供适当值。 学习一个好方法是看看其他模块是如何完成你想做事情。...create 方法不接受结果集作为字段值。...为此在account.move创建中包含invoice_line_ids字段,这是一个One2many字段。One2many和Many2many使用通用ORM方法描述特殊“commands”。

    1.7K10

    在Ubuntu 16.04上安装Odoo 11堆栈

    例如,第一行允许从节点使用 replicauser 用户连接到主节点,第二行授予odoo用户连接到所有服务器数据库权限。...odoo.yourdomain.com md5 pg_hba.conf文件设置说明: host:使用Unix套接字启用连接。...all:匹配服务器所有数据库。如果您事先了解它们,则可以提供特定Odoo数据库名称(如果有多个,则用逗号分隔)。 odoo:负责应用程序/数据库通信Odoo用户。...从您Linode下载源代码新代码: cd /opt/odoo \ && sudo git fetch origin 11.0 将更改应用于存储库: sudo git reset --hard...使用上面介绍方法,您将在同一版本更新Odoo应用程序,而不是升级到较新Odoo版本。

    8.9K30

    ODOO优化层级关系查询效率方法

    Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系建立。 代码如下 在上面的代码。 使用字段来关联上层记录。...(递归查询文件夹文件) Odoo为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B上级对象。那么存在这样逻辑关系。...Odoo 应用 我们用Odoo11product模块作为演示 在文件.看到产品目录(ProductCategory类.15行起)代码 在Odoo11演示数据,产品目录结构一共有6个 我们查询下数据库数据...要找Saleable下所有子目录即可使用 作为条件 结论: 在Odoo实际使用,发现使用parent存储特性模块主要涉及account, product, stock_location....凡事皆有两面,这种存储特性会在数据库添加多余字段。其实是以空间换时间。

    2.3K80

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

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

    3K30

    odoo 开发入门教程系列-QWeb简史

    表单视图也是如此:尽管使用了一些标记,或,但在设计方面几乎没有什么可做。 然而,如果我们想给我们应用程序一个独特外观,就必须更进一步,能够设计新视图。...Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中记录以卡片状结构显示。...目标: 本节结束时创建一个房产看板视图 在我们地产应用程序,我们希望添加一个看板视图来显示我们房产。看板视图是标准Odoo视图(如表单和列表视图),但其结构更灵活。...提示: 必须在ir.actions.act_window对应view_mode添加 kanban 修改odoo14\custom\estate\views\estate_property_views.xml...在上面的示例字段name被添加到元素,但state在它之外。当我们需要字段值但不想在视图中显示它时,可以将其添加到元素之外。

    2.1K20

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

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

    3.3K40

    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 权限管理学习总结

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

    10.2K20

    LINUX useradd命令使用总结

    帐号建好之后,再用 passwd 设定帐号密码。而可用 userdel 删除帐号。使用 useradd 指令所建立帐号,实际上是保存在 /etc/passwd 文本文件。...    -c, --comment COMMENT         新账户 GECOS 字段    -d, --home-dir HOME_DIR       新账户主目录    -D, --defaults...     显示或更改默认 useradd 配置   -e, --expiredate EXPIRE_DATE  新账户过期日期    -f, --inactive INACTIVE       新账户密码不活动期...显示此帮助信息并推出    -k, --skel SKEL_DIR    使用此目录作为骨架目录    -K, --key KEY=VALUE           不使用 /etc/login.defs 默认值...,指定用户登录时目录为/opt/odoo12,创建一个和用户同名组,并将用户加到该组,指定用户登录后shell,默认为/bin/bash。

    1.1K31

    5. Schema和数据类型

    MANY2ONE: 在图中任何顶点上最多允许此标签一条出边,但不对入边施加约束。边标签mother是MANY2ONE多样性一个例子,因为每个人最多只有一个母亲,但母亲可以有多个孩子。...要定义属性键,请在打开图形或管理事务上调用makePropertyKey(String),并提供属性键名称作为参数。 属性键名称在图形必须是唯一,建议避免使用属性名称空格或特殊字符。...更改Schema 边标签,属性键或顶点标签定义一旦提交则无法更改。...JanusGraph实例,Schema名字更改可能不会立即生效。...虽然通过后端存储向所有JanusGraph实例通知了Schema名字更改,但它可能需要一段时间才能生效,并且如果遇到某些故障情况(网络分区)可能需要重启实例。

    1.1K40

    【PowerDesigner】创建和管理CDM之新建和使用

    :NG-CRM5.5逻辑模型 在树形模型管理器,右键单击新建CDM工程名,从出现菜单中选择New->Package即可新建一个包(Package)。...Package用于对一个CDM工程图表按照业务等规则分类存放,NG-CRM5.5数据模型分为客户、用户、帐户等多个 在树形模型管理器,右键单击新建Package名,从出现菜单中选择New...比如NG-CRM5.5模型中所有存放钱字段数据类型统一要求为NUMBER(14,2),如此可定义一个,数据类型为NUMBER(14,2),然后将此应用到模型中所有与钱有关字段,日后如果要求将与钱有关字段数据类型更改为...,设置Data Type,点击OK,一个新就创建完成了 在CDM中使用,如用户停机实体,属性应收费用与钱有关,只要对应RowDamain列下拉框中选中新建(钱),则Data Type字段值自动调整为...通过实际操作,掌握了如何在不同实体和属性应用这些预定义,从而提高了数据建模效率和规范性。

    13610
    领券