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

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

在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段。 视图是带有操作和菜单XML文件中定义。...它们是ir.ui.view model实例。 我们estate模块中,我们需要以逻辑方式组织字段列表()视图中,我们希望显示不仅仅是名称。 表单视图中,应该对字段进行分组。...搜索视图中,我们必须能够搜索不仅仅是名称。具体来说,我们需要"Available"地产筛选器和按"postcode"分组快捷方式 List(列表) 参考: 主题关联文档可参考List....自定义搜索视图中添加用户可能过滤字段是非常常见。 搜索视图还可以包含元素,这些元素充当预定义搜索开关。...odoo中,domain对记录上条件进行编码:domain是用于选择模型记录子集条件列表。每个条件都是一个包含字段名、运算符和值三元组。

3.2K40

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

模型和表单,,搜索视图 该练习是对前几章很好扼要重述:你需要创建一个 model,设置 model,添加 动作和菜单,并且创建视图....练习2 会用上述提到两种常用model添加买家和销售人员到estate.property模块。将它们添加到form视图中新tab页面。 销售人员默认值必须是当前用户。买家不能被复制。...例如,我们通过partner_id字段测试模型上定义了到res.partner模型链接。...首先,我们不需要所有模型操作或菜单。某些模型只能通过另一个模型访问。我们练习中就是这样:报价总是通过房产获得。 其次,尽管property_id字段是必需,但我们没有将其包含在视图中。...当我们通过one2many字段创建记录时,为了方便,会自动填充相应many2one 添加odoo14\custom\estate\models\estate_property_offer.py #!

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

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

例如,我们房地产场景中,我们希望常规用户视图中直接显示销售人员财产列表。...为此,我们需要向res.users模型添加一个字段,并调整其视图以显示它。 Odoo提供了两种继承机制来以模块化方式扩展现有模型。...odoo中,第一种机制最常用。我们例子中,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...这些扩展既可以添加内容,也可以从父视图中删除内容。 扩展视图使用inherit_id字段引用其父视图。...练习--添加字段到用户视图 添加property_ids字段到 base.view_users_form 中新建notebook页 提示: 可以 这里找到继承用户视图示例。

2.2K20

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

提示: create_date 仅在记录创建时被填充,因此需要一个回退,防止创建时奔溃 表单和列表视图中添加字段,正如本章目标中显示第二个动画中一样。...为了实现这一点,我们定义了一个方法,其中self表示表单视图中记录,并用 onchange()修饰该方法,以指明它由哪个字段触发。...同时,需要注意是,不要循环遍历 self,因为该方法表单视图中触发,self总是代表单条记录。...始终首选computed field,因为它们也是表单视图上下文之外触发。永远不要使用onchange将业务逻辑添加到模型中。...这是一个非常糟糕想法,因为以编程方式创建记录时不会自动触发onchanges;它们仅在表单视图中触发。

3.1K30

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

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

2.2K80

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

_fold_name= 'fold' 用于确定看板视图中折叠组字段 AbstractModel odoo.models.AbstractModel[源代码] odoo.models.BaseModel...: 如果result==0,则第一个和第二个浮点数相等,如果result<0,第一个浮点数小于第二个,如果result>0,第一个浮动点数大于第二个浮动点数 class odoo.fields.Integer...这意味着视图中不存在字段创建记录期间不会触发调用。...在出现字段表单视图中,当修改某个给定字段时,将调用该方法。包含表单中存在伪记录上调用该方法。该记录上字段赋值将自动返回客户端。...进行格式化 odoo.fields.One2many和odoo.fields.Many2many使用特殊“命令”格式来操作存储字段中/与字段关联记录集。

13.2K10

odoo 权限管理学习总结

res_partner表中,那么odoo中如何区分用户类型以及如何做权限控制呢?...base.user_root: __system__用户(ID为1用户,technical admin ) category定义相关数据存储ir_module_category表中 添加group...可以利用该特性实现隐藏对象需求,比如针对一些常规下不需要显示特殊字段,为其设置属性groups = "base.group_no_one",可以实现在非Debug模式下隐藏字段图中显示。...如果当前用户不在列出组中,他将无权访问该字段: 将自动从请求图中删除受限制字段 从fields_get()响应中删除受限制字段 尝试(显式)读取或写入受限字段会导致访问错误 修改estate..."/> 验证,发现界面上,未授权上述框选权限用户已经看不到上述字段了 注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中

10K20

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

Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经Odoo见过 看板,其中记录以卡片状结构显示。...目标: 本节结束时创建一个房产看板视图 我们地产应用程序中,我们希望添加一个看板视图来显示我们房产。看板视图是标准Odoo视图(如表单和列表视图),但其结构更灵活。...:这向视图中添加name字段。... 我们添加了几个东西: t-if: 如果条件为真,渲染元素 record: 拥有所有请求字段作为其属性对象...在上面的示例中,字段name被添加到元素中,但state它之外。当我们需要字段值但不想在视图中显示它时,可以将其添加到元素之外。

2K20

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

类似CSV文件,XML文件也必须按约定添加到合适目录,并在 __manifest__.py中进行定义。数据文件中内容也是模块安装或者更新时按序加载。...view_mode 可获取视图。本例中为列表()和表格视图。 odoo中到处都可以找到例子,但是这个 简单action好例子。关注XML 数据文件结构,因为你在后续练习中会用到。 <?...然而,菜单总是遵循一种体系结构,实际上有三个层次菜单: 根菜单,显示App切换器中(Odoo社区版切换器是一个下拉菜单) 第一级菜单,显示顶部栏中 动作菜单 最容易方式是XML文件中定义结构来创建菜单...,直接从action获取,即为action属性值 练习 添加菜单 合适目录(本例中为odoo14/custom/estate/models/views)创建 estate_menus.xml 文件...Odoo有许多微调方式,但通常第一步是确保: 某些字段有默认值 某些字段只读 当记录重复时,某些字段不能被拷贝 我们房产业务案例中,我们希望:: 售价只读(往后将自动填充) 当记录重复时,可用日期和售价不能被拷贝

2.8K30

Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

在这篇教程里我们将会了解到 Odoo 模型里一些其他类型字段和特殊机制,而我依然会继续带领大家一起完善我们 Todo 应用,不断地往里面添加一些新功能特性,让它看起来更丰满也更实用一些。...选择字段 在上一篇教程中,我们已经创建好了待办事项模型,但是只是添加了「描述」和「已完成?」两个字段,这肯定是不能满足我们需求。...此处我们还给这个字段添加了默认值 todo,表示当一个待办事项被创建后,如果没有指定紧急程度,将默认是待办状态。我们可以为任意类型字段添加默认值。...这个需求跟时间有关,并且时间是流动(一直变化),所以我们应该要有一个方法在用户每次打开待办事项之前,把这个结果计算好,并且反馈给用户,还好 Odoo ORM 已经为我们实现了相关机制——计算字段... 图中我们把

1.3K10

odoo 为可编辑列表视图字段搜索添加查询过滤条件

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图,列表网仓记录详情页面(form视图),编辑内联视图中货主记录,为货主和仓库字段搜索,添加过滤条件...,具体如下: 添加、编辑货主时,下拉列表中只展示选取和当网仓记录所属公司关联货主,点击搜索更多,仅展示和当前网仓记录所属公司关联货主 添加、编辑货主时,下拉列表中只展示选取和当网仓记录关联仓库(到...“仓库” Tab页中添加仓库),点击搜索更多,仅展示和当前网仓记录关联仓库。...--此处代码已省略--> 添加过滤条件代码实现 修改视图,给视图添加context 修改ResPartner,重写模型name_search(编辑货主字段,弹出下拉列表时,会请求该模型函数),search_read(编辑货主字段

1.1K30

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

模型和基本字段 在上一章末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。...ORM 层是odoo一个关键组件。该层避免了手动写入大部分SQL并提供可扩展性和安全服务. 业务对象被定义为继承于 ModelPython类。可以通过定义中设置属性来配置model。...最重要属性为 _name,该属性定义了modelodoo系统中属性。...有两大类领域字段:‘简单’字段--直接存储模型表中原子值,形如Boolean, Float, Char, Text, Date 和Selection, ‘关系型’ 字段--连接相同或者不同模型记录...给模型表estate_property添加字段 添加以下字段到表中 Field Type name Char description Text postcode Char date_availability

2.2K30

odoo Actions学习总结

所有Action都有两个强制属性: type 当前Action类别,决定可以使用哪些字段以及如何解释action name action名称,客户端界面中显示对action简短用户可读描述...包含字段: res_model action触发要显示视图关联模型 views (view_id,view_type)对列表。...highlight=do_action#the-action-manager 在数据库window action中,操作有几个不同字段,这些字段应被客户端忽略,主要用于组成view列表 view_mode...所有这些类型都必须在生成views列表中(至少有一个False view_id) view_ids M2M(技术上不是M2M:添加了一个sequence字段,可以只由一个视图类型组成,没有视图id)...中每个未填充类型,追加(False,type) 应用实践举例 estate模块estate.property模型表单视图中,为Action添加菜单"选取offers",如下: !

2.6K30

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

约束(Constraints) 上一章介绍了向模型中添加一些业务逻辑能力。我们现在可以将按钮链接到业务代码,但如何防止用户输入错误数据?...例如,我们房地产模块中,没有什么可以阻止用户设置负预期价格。 odoo提供了两种设置自动验证恒定式方法:Python约束 and SQL约束。...修改odoo14\custom\estate\models\estate_property_type.py,添加SQL约束 _sql_constraints = [('check_name',...Python约束定义为用 constrains()修饰方法,并在记录集上调用。修饰符指定约束中涉及哪些字段。当修改这些字段任何字段时,将自动计算约束。...Python约束 添加售价不能低于预期价格90%约束 提示: 报价生效前,保持售价为0。

1.4K20

CSS浮动 (比较详细、生动、经典)

例如,假设上图中div2浮动,那么它将脱离标准流,但div1、div3、div4仍然标准流当中,所以div3会自动向上移动,占据div2位置,重新组成一个流。如图: ?...从图中可以看出,由于对div2设置浮动,因此它不再属于标准流,div3自动上移顶替div2位置,div1、div3、div4依次排列,成为一个新流。...至此,恭喜读者已经掌握了添加浮动,但还有清除浮动,有上边基础清除浮动非常容易理解。 经过上边学习,可以看出:元素浮动之前,也就是标准流中,是竖向排列,而浮动之后可以理解为横向排列。...这时候就要用到清除浮动(clear),如果单纯根据官方定义,读者可能会尝试这样写:div1CSS样式中添加clear:right;,理解为不允许div1右边有浮动元素,由于div2是浮动元素,因此会自动下移一行来满足规则...Q: 脱离文档流是不是指该元素从dom中脱离? A: 不是,用浏览器审查元素就可以看到脱离文档流元素(例如被float了)依然会出现在dom里,下面的截图里也可以看到。

1.2K20

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

_update_registrations(confirm=True, mark_as_paid=True) return res 练习--添加创建发票第一步 estate_account...不幸是,没有一种简单方法可以知道如何在Odoo中创建任何给定对象。大多数时候,有必要查看其模型,以找到所需字段并提供适当值。 学习一个好方法是看看其他模块是如何完成你想做事情。...为此account.move创建中包含invoice_line_ids字段,这是一个One2many字段。One2many和Many2many使用通用ORM方法中描述特殊“commands”。...下面是一个创建test.model时包含一个One2many字段line_ids简单示例: def inherited_action(self): self.env["test.model"...每个售出房产都将按照以下条件开具发票: 售价6% 额外100.00行政费 提示:按照上面的示例创建时添加invoice_line_ids。

1.5K10

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

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中"...TransientModel类扩展Model并重用其所有现有机制,具有以下特殊性: wizard记录不是永久;它们一定时间后自动从数据库中删除。...wizard可以通过关系字段(many2one或many2many)引用常规记录或wizard记录,但常规记录不能通过many2one字段引用wizard记录 详细代码 注意:为了更清楚表达本文主题...以下属性皆hasCheckBoxes 为"true"情况下起作用。 modelName 点击列表复选框时,需要访问模型名称,需要配合modelMethod方法使用,缺一不可。...以上参数同下文saveSelectionsToSessionStorage 参数可同时共存 如果需要将action绑定到指定模型指定视图Action,可以ir.actions.act_window定义中添加

5.2K60

Ubuntu 16.04上安装Odoo 10

在此示例中,我们将使用Odoo默认端口8069,但这可能是您稍后配置文件中指定任何端口。如果您计划运行任何其他服务,也可以在此处添加其端口。...当有新升级时,请拉出新分支。您甚至可以在生产版本旁边安装不同版本,只需更改目标目录和--branch X.x标志即可。升级之前,请记住对数据库和自定义文件进行完整备份。...如果您使用自定义模块,请添加替换您自己路径。...包括日志文件路径,并添加一个新行:logfile = /var/log/odoo/odoo-server.log。如果您打算仅使用journald用于记录,则可以跳过此行。.../lib/systemd/system/odoo-server.service中创建一个新文件并添加以下内容: [Unit] Description=Odoo Open Source ERP and

3.3K42
领券