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

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

注解 此方法不是用作默认初始值设定,因为datetime字段客户端显示时会自动转换。对于默认值,应使用now() 参数 record – 从中获取时区的记录集。...计算字段 可以使用 compute 参数计算字段不是直接从数据库读取)它必须将计算值分配给字段。...和odoo.fields.Datetime字段使用字符串作为值(写入和读取),不是date或datetime。...使用委托时,模型has one不是is one,从而将关系转换为组合不是继承: class Screen(models.Model): _name = 'delegation.screen'...如果扩展了模型,还可以通过子类上重新定义具有相同名称和类型的字段来扩展字段定义。在这种情况下,字段的属性取自类,并由子类给定的属性覆盖。

13.4K10

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

我们的房地产模块,我们想定义房产标签的概念。例如,房地产是“舒适”或是“翻新”的 一个地产可以有多个标签,一个标记可以分配给多个房产。这得到了many2many概念的支持。...,many2many字段拥有_ids 后缀。...到estate.property 模型,表单和列表视图 提示: 视图中,使用 widget="many2many_tags"属性正如这里展示的一样。...然而,本例,我们希望显示给定地产的报价列表,因此我们将使用one2many概念。 one2many是many2one的反向实现。...我们的练习中就是这样的:报价总是通过房产获得的。 其次,尽管property_id字段是必需的,但我们没有将其包含在视图中。odoo如何知道我们的报价与哪个房产相关?

4.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

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

在这种情况下,不会从数据库检索字段的值,而是通过调用模型的方法来动态计算的字段的值。 要创建计算的字段,请创建字段并将其属性compute设置为方法的名称。...依赖(Dependencies) 计算的字段的值通常取决于计算记录其他字段的值。ORM期望开发人员使用修饰符depends()指定计算方法上的依赖。...每当修改字段的某些依赖时,ORM使用给定的依赖来触发字段的重新计算 from odoo import api, fields, models class TestComputed(models.Model...添加字段到表单视图,正如本章目标展示的那样 对于关系型字段,可以使用通过字段的路径作为依赖: description = fields.Char(compute="_compute_description...注意,保存记录时调用inverse方法,每次更改依赖时调用compute方法。

3.1K30

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

模块交互 在上一章,我们使用继承来修改模块的行为。我们的房地产场景,我们希望更进一步,能够为客户生成发票。...链接模块(Link Module) 此类使用案例的常见方法是创建“链接”模块。我们的案例,该模块依赖estate 和account,包括房产的发票创建逻辑。...不幸的是,没有一种简单的方法可以知道如何Odoo创建任何给定的对象。大多数时候,有必要查看其模型,以找到所需的字段并提供适当的值。 学习的一个好方法是看看其他模块是如何完成你想做的事情的。...将发票行链接到发票的最简单、最有效的方法是创建发票时包含所有行。为此account.move创建中包含invoice_line_ids字段,这是一个One2many字段。...One2many和Many2many使用通用ORM方法描述的特殊“commands”。这种格式是一个按顺序执行的三元组列表,其中每个三元组都是要对结果集执行的命令。

1.7K10

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

TransientModel类扩展Model并重用其所有现有机制,具有以下特殊性: wizard记录不是永久的;它们一定时间后自动从数据库删除。...wizard可以通过关系字段(many2one或many2many)引用常规记录或wizard记录,但常规记录不能通过many2one字段引用wizard记录 详细代码 注意:为了更清楚的表达本文主题...获取数据,代码略(假设获取的数据存放在 data 变量) record_ids = [] for id, value_dict in data.items(...以下属性皆hasCheckBoxes 为"true"的情况下起作用。 modelName 点击列表复选框时,需要访问的模型名称,需要配合modelMethod方法使用,缺一不可。...odoo14\custom\estate\static\src\js\list_renderer.js 注意:之所以将uuid函数定义list_renderer.js,是为了避免因为js顺序加载问题

5.3K60

odoo Actions学习总结

所有Action都有两个强制属性: type 当前Action的类别,决定可以使用哪些字段以及如何解释action name action的名称客户端的界面显示对action的简短用户可读描述...使用main不是current以清除导航面包屑(实际发现,使用current会导致面导航面包屑不断重复,形如 顾客信息/导入记录/顾客信息/导入数据/...)。默认为new。...web客户端默认为80 name(可选),action名称,界面显示时拼接到当前面包屑导航(现有导航面包屑 / name值)。...所有这些类型都必须在生成的views列表(至少有一个False view_id) view_ids M2M(技术上不是M2M:添加了一个sequence字段,可以由一个视图类型组成,没有视图id)...如果您计划为模型允许多个视图,优先使用ir.actions.cact_window.wiew不是view_ids action。

2.6K30

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

Python 3, super() 等价于 super(TestModel, self)。当你需要使用一条被修改后的结果集调用方法时,可能需要使用后者。...提示: 可在vals获取property_id 字段,但是它是一个int型。...odoo,第一种机制最常用。我们的例子,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...目标: 在用户表单视图中显示与销售人员关联的avaliable房产列表其用户表单视图 Odoo提供了视图继承,其中子“扩展”视图应用于根视图之上,不是就地修改现有视图(通过重写它们)。...它的arch字段包含多个xpath元素,用于选择和更改视图的内容,不是单个视图:

2.2K20

maven pom.xml 配置文件标签说明,dependencyManagement和dependencies区别

* test,测试时使用,用于编译和运行测试代码。不会随项目发布。 * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository查找它。...如果项目中不写依赖,则会从父项目继承(属性全部继承)声明项目dependencies里的依赖。...如果不在子项目中声明依赖,是不会从父项目中继承的; 只有子项目中写了该依赖,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自pom; 如果子项目中指定了版本号,...同时dependencyManagement让子项目引用依赖,不用显示的列出版本号。...3)dependencyManagement 的 dependencies 并不影响项目的依赖独立dependencies元素则影响项目的依赖

93150

Android的ListView和RecyclerView的基本用法

* 这样我们就能够代码中使用布局文件的各个属性。...否则就是布局声明,不添加进入布局 * 这里我们当然不能加入布局,因为我们的 View 是要加入 ListView 作为子控件的 */...我们实际使用的时候可以根据我们自己的需求来设置ListView控件的item布局文件和ListView的点击事件处理。...库,并不是SDK,所以我们要进行依赖声明:app的build.gradle文件中加入以下代码: compile 'com.android.support:recyclerview-v7:25.1.1...,注意我们使用不是SDK中原本就存在的控件时,要写入这个控件的完整路径名(包括我们自定义的控件),接下来新建一个Activity用于显示RecyclerView,RecyclerViewActivity.java

1.1K50

odoo 开发入门教程系列-约束(Constraints)

约束(Constraints) 上一章介绍了向模型添加一些业务逻辑的能力。我们现在可以将按钮链接到业务代码,但如何防止用户输入错误的数据?...例如,我们的房地产模块,没有什么可以阻止用户设置负预期价格。 odoo提供了两种设置自动验证恒定式的方法:Python约束 and SQL约束。..., ] 练习--添加SQL约束 添加以下约束到对应模型: 房产预期价格必须为正数 房产售价必须为正数 报价必须为正数 房产标签名称和类型名称必须唯一 使用-u estate选项重新启动服务器以查看结果...修饰符指定约束涉及哪些字段。当修改这些字段的任何字段时,将自动计算约束。...当性能很重要时,总是首选SQL约束不是Python约束。

1.5K20

Ubuntu 16.04上安装Odoo 11堆栈

此类连接不需要数据库名称。 replicauser:上一节创建的用户。 md5:使用客户端提供的MD5加密密码进行身份验证。 all:匹配服务器的所有数据库。...--single-branch /opt/odoo 注意 Odoo 11应用程序现在使用Python 3.x不是Python 2.7。...这将安装pg_dump和其他实用程序,让您可以像以前一样使用Odoo GUI。由于Odoo配置是明确的数据库连接,您不必担心其他任何事情。此方法将数据库还原到masterdb服务器不是odoo。...您可以与测试或备份数据库服务器同步,不是与从属节点同步: 1.masterdb上编辑/etc/postgresql/9.6/main/pg_hba.conf以允许测试服务器连接到它。...使用上面介绍的方法,您将在同一版本更新Odoo应用程序,不是升级到较新的Odoo版本。

8.9K30

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

在上一章已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受的。相反,我们至少应该以逻辑的方式组织各个字段。 视图是带有操作和菜单的XML文件定义的。...我们的estate模块,我们需要以逻辑方式组织字段列表(树)视图中,我们希望显示的不仅仅是名称表单视图中,应该对字段进行分组。 搜索视图中,我们必须能够搜索的不仅仅是名称。...练习 -- 添加自定义表单视图 合适的XML文件为estate.property 定义视图 为了避免每次修改视图时都重新启动服务器,可以启动服务器时添加--dev-xml,以便刷新页面就可以查看视图修改...odoo,domain对记录上的条件进行编码:domain是用于选择模型记录子集的条件列表。每个条件都是一个包含字段名、运算符和值的三元组。...它们用于前缀位置(运算符插入在其参数之前,不是插入参数之间)。

3.2K40

Maven 极简教程「附」常用的 Maven 命令

组合使用goal命令,如打包不测试:mvn -Dtest package 编译测试的内容:mvn test-compile 打jar包: mvn jar:jar 测试不编译,也不测试编译:mvn...Maven首先在构建当前项目的地方寻找 目的pom,其次文件系统的这个位置(relativePath位置),然后本地仓库,最后远程仓库寻找项目的pom。...应该列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们的一个不是接受所有license。...--如果Maven检测到某一个属性(其值可以POM通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。...注意,不鼓励使用这个元素,并且新的版本该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。

1.8K30

Maven使用详解

声明优先 若引用路径长度相同时,pom.xml谁先被声明,就使用谁。 聚合 什么是聚合? 将多个项目同时运行就称为聚合。 如何实现聚合?...聚合多个项目时,如果这些被聚合的项目中需要引入相同的Jar,那么可以将这些Jar写入pom,各个子项目继承该pom即可。 如何实现继承?...Maven首先在构建当前项目的地方寻找 目的pom,其次文件系统的这个位置(relativePath位置),然后本地仓库,最后远程仓库寻找项目的pom。...应该列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们的一个不是接受所有license。...注意,不鼓励使用这个元素,并且新的版本该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。

3K50

Maven:第二章:最全的Maven Pom文件标签详解

Maven首先在构建当前项目的地方寻找 目的pom,其次文件系统的这个位置(relativePath位置),然后本地仓库,最后远程仓库寻找项目的pom。...应该列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们的一个不是接受所有license。...--如果Maven检测到某一个属性(其值可以POM通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。...如果值 字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段--> <!...注意,不鼓励使用这个元素,并且新的版本该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。

1K40

maven pom文件标签详解

Maven首先在构建当前项目的地方寻找 目的pom,其次文件系统的这个位置(relativePath位置),然后本地仓库,最后远程仓库寻找项目的pom。...应该列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们的一个不是接受所有license。...--如果Maven检测到某一个属性(其值可以POM通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。...如果值 字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段--> <!...注意,不鼓励使用这个元素,并且新的版本该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。

2.1K30

odoo 权限管理学习总结

那么odoo如何区分用户类型以及如何做权限控制的呢?...highlight=noupdate base.user_admin :admin用户(ID为2的用户,用户数据定义odoo\addons\base\data\res_users_data.xml...(5)再循环执行(4, ID)) 拓展: odoo中有个特殊的组base.group_no_one,需要开启Debug模式才可获取该组权限。...,即指定哪个组拥有如下访问权限,如果指定组不是在当前模块定义的组,需要指定模块名称,形如module_name.groupName。...如果当前用户不在列出的组,他将无权访问该字段: 将自动从请求的视图中删除受限制的字段 从fields_get()响应删除受限制的字段 尝试(显式的)读取或写入受限字段会导致访问错误 修改estate

10.1K20

史上最全的maven的pom.xml文件详解

如果你需要修改产生的web站点的索引页面,你应该修改你自己的 索引页文件,不是调整这里的文档。...应该列出该项目的license列表,不要列出依赖项目的 license列表。 如果列出多个license,用户可以选择它们的一个不是接受所有license。...-- 如果Maven检测到某一个属性(其值可以POM通过${名称}引用),其拥有对应的名称和值,Profile 就会被激活。...如果值字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹 配属性值字段 --> <property...注意,不鼓励使用这个元素,并且新的版本该元素可能被覆盖掉。该元素为依赖规定了文件 系统上的路径。需要绝对路径不是相对路径。

1.1K40

Maven pom文件详解 转

如果你需要修改产生的web站点的索引页面,你应该修改你自己的 索引页文件,不是调整这里的文档。...应该列出该项目的license列表,不要列出依赖项目的 license列表。 如果列出多个license,用户可以选择它们的一个不是接受所有license。...-- 如果Maven检测到某一个属性(其值可以POM通过${名称}引用),其拥有对应的名称和值,Profile 就会被激活。...如果值字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹 配属性值字段 --> <property...注意,不鼓励使用这个元素,并且新的版本该元素可能被覆盖掉。该元素为依赖规定了文件 系统上的路径。需要绝对路径不是相对路径。

1.8K30
领券