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

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

Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段页面。 你可能已经Odoo见过 看板,其中记录以卡片状结构显示。...目标: 本节结束时创建一个房产看板视图 我们地产应用程序中,我们希望添加一个看板视图来显示我们房产。看板视图是标准Odoo视图(如表单列表视图),但其结构更灵活。...在上面的示例中,字段name被添加到元素中,但state它之外。当我们需要字段值但不想在视图中显示它时,可以将其添加到元素之外。...练习--改善看板视图 添加以下字段看板视图:expected price, best price, selling price tags。...您可能想看看Kanban中描述各种选项。 练习--添加默认分组 使用合适属性对房产分组,默认按类型分组。你必须阻止拖拽删除。

2K20

odoo context上下文用法总结

_context is {'key1': True, 'key2': True} 需要注意是,上下文是记录集绑定,修改后上下文并不会在其它记录集中共享 应用场景示例 用于action,为关联视图添加默认搜索...、过滤条件 视图定义 为设置action打开tree列表视图添加默认搜索,搜索条件为 state字段值等于True 说明:'group_by': '分组字段名称' 用于视图对象按钮,传递数据给模型方法 模型设计 #!...> 说明:context属性值中字典键值如果为模型中定义字段名称,则该字段名称必须以元素形式,出现在模型对应视图(即不能是内联视图,比如内联Tree列表)中,否则会出现类似错误提示...为可编辑列表视图字段搜索添加查询过滤条件](odoo 为可编辑列表视图字段搜索添加查询过滤条件.md) 用于记录集,传递数据给模型方法 模型设计 #!

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

odoo 权限管理学习总结

res_partner表中,那么odoo如何区分用户类型以及如何做权限控制呢?...可以利用该特性实现隐藏对象需求,比如针对一些常规下不需要显示特殊字段,为其设置属性groups = "base.group_no_one",可以实现在非Debug模式下隐藏字段视图显示。...如果当前用户不在列出组中,他将无权访问该字段: 将自动从请求视图中删除受限制字段 从fields_get()响应中删除受限制字段 尝试(显式)读取或写入受限字段会导致访问错误 修改estate..."/> 验证,发现界面上,未授权上述框选权限用户已经看不到上述字段了 注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中,...接口,会调用fields_view_get方法,可以重写此方法以控制xml显示效果(参考网络资料,未实践验证) 按钮权限(按钮级别) 类似字段权限控制,仅需在在对应视图中,为目标按钮元素

10K20

odoo Actions学习总结

环境 odoo-14.0.post20221212.tar Actions(动作) action定义系统响应用户操作行为:登录、操作按钮、选择发票等… action可以存储在数据库中,也可以作为字典直接返回...所有Action都有两个强制属性: type 当前Action类别,决定可以使用哪些字段以及如何解释action name action名称,客户端界面中显示对action简短用户可读描述...binding_view_types 以逗号分隔视图类型列表,即Action需要显示上下文菜单所在视图,主要是“列表”“表单”。...所有这些类型都必须在生成views列表中(至少有一个False view_id) view_ids M2M(技术上不是M2M:添加了一个sequence字段,可以只由一个视图类型组成,没有视图id)...中每个未填充类型,追加(False,type) 应用实践举例 estate模块estate.property模型表单视图中,为Action添加菜单"选取offers",如下: !

2.6K30

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

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中"...选取ffers"按钮),弹出一个向导(wizard)界面,并将详情页中内联tree视图("Offers" Tab页)列表记录展示到向导界面,且要支持复选框,用于选取目标记录,然执行目标操作。...以下属性皆hasCheckBoxes 为"true"情况下起作用。 modelName 点击列表复选框时,需要访问模型名称,需要配合modelMethod方法使用,缺一不可。...以上参数同下文saveSelectionsToSessionStorage 参数可同时共存 如果需要将action绑定到指定模型指定视图Action,可以ir.actions.act_window定义中添加...binding_model_idbinding_view_types字段,如下: <record id="action_demo_wizard" model="ir.actions.act_window

5.2K60

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

在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段视图带有操作和菜单XML文件中定义。...它们是ir.ui.view model实例。 我们estate模块中,我们需要以逻辑方式组织字段列表(树)视图中,我们希望显示不仅仅是名称。 表单视图中,应该对字段进行分组。...搜索视图与列表及表单视图略有不同,因为它们不显示内容。尽管它们适用于特定模型,但它们用于过滤其他视图内容(通常是聚合视图,比如列表). 除了使用方面的不同,他们定义方式是一样。...自定义搜索视图添加用户可能过滤字段是非常常见。 搜索视图还可以包含元素,这些元素充当预定义搜索开关。...odoo中,domain对记录上条件进行编码:domain是用于选择模型记录子集条件列表。每个条件都是一个包含字段名、运算符三元组。

3.2K40

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

上一章,我们通过CSV文件添加了数据。当需要添加数据格式简单时,用CSV格式还是很方便,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。...odoo中,用户接口(action,菜单视图)大部分是通过创建和组装XML文件中记录来定义。常见模式为 菜单> action > 视图。为了访问记录,用户几个菜单级中导航。...view_mode 可获取视图。本例中为列表(树)表格视图odoo中到处都可以找到例子,但是这个 简单action好例子。关注XML 数据文件结构,因为你在后续练习中会用到。 <?...服务,查看效果 字段,属性视图(Fields, Attributes And View) 到目前为止,我们只对房产广告使用了通用视图,但在大多数情况下,我们希望对视图进行微调。...Odoo有许多微调方式,但通常第一步是确保: 某些字段有默认值 某些字段只读 当记录重复时,某些字段不能被拷贝 我们房产业务案例中,我们希望:: 售价只读(往后将自动填充) 当记录重复时,可用日期售价不能被拷贝

2.8K30

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

介绍特定Odoo模块继承之前,让我们看看如何更改标准CRUD(创建、检索,更新或删除)方法行为 Python继承(Python Inheritance) 目标: 不能删除状态不为New、Canceled...为此,我们需要向res.users模型添加一个字段,并调整其视图以显示它。 Odoo提供了两种继承机制来以模块化方式扩展现有模型。...odoo中,第一种机制最常用。我们例子中,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...这些扩展既可以添加内容,也可以从父视图中删除内容。 扩展视图使用inherit_id字段引用其父视图。...练习--添加字段到用户视图 添加property_ids字段到 base.view_users_form 中新建notebook页 提示: 可以 这里找到继承用户视图示例。

2.2K20

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

添加字段到表单视图,正如本章目标中展示那样 对于关系型字段,可以使用通过字段路径作为依赖项: description = fields.Char(compute="_compute_description...提示: create_date 仅在记录创建时被填充,因此需要一个回退,防止创建时奔溃 表单列表视图添加字段,正如本章目标中显示第二个动画中一样。...最终取决于用户是否修改名称描述值。 同时,需要注意是,不要循环遍历 self,因为该方法表单视图中触发,self总是代表单条记录。...对于computed field Onchanges使用没有严格规则。 许多情况下,可以使用computed fieldonchanges来实现相同结果。...始终首选computed field,因为它们也是表单视图上下文之外触发。永远不要使用onchange将业务逻辑添加到模型中。

3.1K30

odoo 给列表视图添加按钮实现数据文件导入

实践环境 Odoo 14.0-20221212 (Community Edition) 代码实现 模块文件组织结构 说明:为了更好表达本文主题,一些主题无关文件、代码已略去 odoo14\custom...> 说明:,其中estate_customer_tree为下文javascript中定义组件,实现添加自定义按钮...> estate_customer_tree 组件定义 js实现 为列表视图添加自定义上传数据文件按钮 odoo14\custom\estate\static\src\js\estate_customer_tree_upload.js...class属性值 替换estate.CustomerHiddenUploadForm为在对应按钮视图模板中定义隐藏表单模版名称 替换EstateCustomerListView.buttons为对应按钮视图模板中定义按钮模版名称...替换estate_customer_tree为自定义全局唯一值 do_action 为 Widget() 快捷方式(定义odoo14\odoo\addons\web\static\src\js\core

3.4K30

SAP最佳业务实践:使用看板生产制造(233)-6经典看板使用数量信号及触发点内部生产(重复制造)

解锁看板屏幕中,如果在冻结列中有 X 标识,则为锁定看板。单一标记冻结看板或选择控制周期标志来标记控制周期内所有看板,然后选择按钮解锁所选看板。 3. 选择 是 确认该消息。... 看板:供应来源一览, 初始屏幕中输入以下数据,然后按 回车 确认: 字段名称 用户操作和值 注释 负责人 101 工厂 CN01 您可以查看 S233-2 其他物料看板。 ? ?... 数量信号:输入屏幕中,进行以下输入: 字段名称 用户操作和值 注释 可能条目 选择物料 单选按钮 物料 S233-2 工厂 1000 供应区域 KANBAN_06 领料数量 100 ?...已处理看板表中,可查看已处理看板详细信息。已处理看板状态已更改为使用中。...使用事务 PK22 从看板中进行部分提取不会引起库存相关登记。此事务仅与供应控制相关。只有看板状态更改为空 时才会进行状态更改登记。

1.7K50

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

与parent_path 字段一起,设置记录树结构索引存储,以便使用child_ofparent_of域运算符对当前模型记录进行更快分层查询 _date_name= 'date' 用于默认日历视图字段..._fold_name= 'fold' 用于确定看板视图中折叠组字段 AbstractModel odoo.models.AbstractModel[源代码] odoo.models.BaseModel...这意味着视图中不存在字段创建记录期间不会触发调用。...在出现字段表单视图中,当修改某个给定字段时,将调用该方法。包含表单中存在伪记录上调用该方法。该记录上字段赋值将自动返回客户端。...进行格式化 odoo.fields.One2manyodoo.fields.Many2many使用特殊“命令”格式来操作存储字段中/与字段关联记录集。

13.2K10

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

模型表单,树,搜索视图 该练习是对前几章很好扼要重述:你需要创建一个 model,设置 model,添加 动作和菜单,并且创建视图....到estate.property 模型,表单列表视图 提示: 视图中,使用 widget="many2many_tags"属性正如这里展示一样。...price,partner_id,status字段创建列表表单视图 ,不必创建动作和菜单 添加offer_ids字段到estate.property 模型极其表单视图 这里有几件重要事情需要注意...首先,我们不需要所有模型操作或菜单。某些模型只能通过另一个模型访问。我们练习中就是这样:报价总是通过房产获得。 其次,尽管property_id字段是必需,但我们没有将其包含在视图中。...odoo如何知道我们报价与哪个房产相关?这就是使用odoo框架一部分魔力:有时候事情是隐式定义

4.3K40

SAP最佳业务实践:使用看板生产制造(233)-10事件驱动看板使用警报内部生产

image.png 事件驱动看板中,物料供应不基于预定义看板数或预定义看板数量。而是基于实际物料消耗。供应区域不会持续提供补充物料。只有特别请求时才会进行补充。...S233-2 S233-3 看板。...要检查补货要素,请双击新建看板本例中为重复制造计划订单)。按下按钮显示补充可查看详细信息。...2、PK12N可选:将看板更改为错误状态导致生成错误日志 在此过程中,将维护警报使用,即看板错误操作会导致生成错误日志。在此业务情景中,需要使用强制性状态序列。...看板状态不变,即为 空。 3、PK12N将看板更改为 "状态处理中" 在此活动中,将源视图看板状态更改为 状态处理中。维护着一个状态序列,因此遵循序列是必需

1.3K60

Bullet Journal for Notion 之个人财务架构 | 好设计胜千言

创建新月份看板可以使用这个 new 按钮或是直接拷贝上个月页面即可。 进行预算主要有两步,首先找到当月中预算区块,将当月所有的花销预算列在这里。...日常记账及统计视图# 有了预算,如何去记录当月各种开销呢?下面就一起来看看。 首先在账本区块中设定一个过滤器,过滤出当月花销,之后向该数据库记录数据即可。...填写这些信息时还有一个小技巧,我平常花销全部使用信用卡,之后我创建了一个新视图专门过滤出信用账户,增加新条目时会自动帮我将账户、预算账户等信息填好,可以快速记账。...您也可以按照自己需要添加合适视图,方便统计记账,比如我自己用账单就有这么多视图。...为了更好管理个人理财,模版提供了专门理财管理,包括了理财账户理财账本。 在理财账户这里您可以添加自己购入各种基金或是理财产品,并指定一个账户。未来投入钱会在账户统计时直接扣除。

26830

Bullet Journal for Notion 之个人财务架构 | 好设计胜千言

创建新月份看板可以使用这个 new 按钮或是直接拷贝上个月页面即可。 进行预算主要有两步,首先找到当月中预算区块,将当月所有的花销预算列在这里。...日常记账及统计视图# 有了预算,如何去记录当月各种开销呢?下面就一起来看看。 首先在账本区块中设定一个过滤器,过滤出当月花销,之后向该数据库记录数据即可。...填写这些信息时还有一个小技巧,我平常花销全部使用信用卡,之后我创建了一个新视图专门过滤出信用账户,增加新条目时会自动帮我将账户、预算账户等信息填好,可以快速记账。...您也可以按照自己需要添加合适视图,方便统计记账,比如我自己用账单就有这么多视图。...为了更好管理个人理财,模版提供了专门理财管理,包括了理财账户理财账本。 在理财账户这里您可以添加自己购入各种基金或是理财产品,并指定一个账户。未来投入钱会在账户统计时直接扣除。

21930

SAP最佳业务实践:使用看板生产制造(233)-8经典看板使用警报库存转储(完整仓库管理)

已创建物料 R233-3看板控制周期,且对于物料R233-3,存储位置 1070 有足够可用库存。 角色生产计划员 后勤-生产-看板-控制-看板牌-需求源视图 1....) 看板。 3. 选择按钮 状态在途中。 4. 请注意,状态已更改为 容器在途中 ( ? )。 5. 双击黄色看板 看板信息 对话框中,选择 显示补充按钮。 6....如果您查看看板(SAP GUI 中事务 PK13N 或 PK12N; NWBC 中:角色:SAP_NBPR_PRODPLANNER_S;路径:生产®看板 ®控制 ®看板:需求来源视图)那么已处理看板中将看到...接下来步骤中将删除这两个需求要素,以便使用完整仓库管理查看看板警报。 已创建物料 R233-3看板控制周期,且对于物料R233-3,存储位置 1070 有足够可用库存。...8、PK13N可选:警报 – 检查看板状态 在此活动中,将检查已删除补货看板状态。 已删除看板转储单运输单。 角色生产计划员 后勤®生产 ®看板 ®控制®看板牌®需求源视图 1.

2.2K70

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

约束(Constraints) 上一章介绍了向模型中添加一些业务逻辑能力。我们现在可以将按钮链接到业务代码,但如何防止用户输入错误数据?...例如,我们房地产模块中,没有什么可以阻止用户设置负预期价格。 odoo提供了两种设置自动验证恒定式方法:Python约束 and SQL约束。..., ] 练习--添加SQL约束 添加以下约束到对应模型: 房产预期价格必须为正数 房产售价必须为正数 报价必须为正数 房产标签名称类型名称必须唯一 使用-u estate选项重新启动服务器以查看结果...Python约束定义为用 constrains()修饰方法,并在记录集上调用。修饰符指定约束中涉及哪些字段。当修改这些字段任何字段时,将自动计算约束。...警告 当浮点数打交道时,总是使用odoo.tools.float_utils导入float_compare() float_is_zero()方法 确保每次售价或者预期价格改变时,自动触发约束

1.4K20

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

模块交互 在上一章中,我们使用继承来修改模块行为。我们房地产场景中,我们希望更进一步,能够为客户生成发票。...我们案例中,该模块依赖estate account,包括房产发票创建逻辑。采用这种方式,estateaccount模块可以独立安装。当两者都安装后,链接模块将提供新功能。...我们希望为estate.property模型添加功能,即我们希望在出售房产时添加一些额外逻辑。 第一步,我们需要扩点击“Sold”按钮时调用操作。...不幸是,没有一种简单方法可以知道如何Odoo中创建任何给定对象。大多数时候,有必要查看其模型,以找到所需字段并提供适当值。 学习一个好方法是看看其他模块是如何完成你想做事情。...为此account.move创建中包含invoice_line_ids字段,这是一个One2many字段。One2manyMany2many使用通用ORM方法中描述特殊“commands”。

1.6K10

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

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

1.3K10
领券