Odoo onChange使用】的更多相关文章

转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826155.html 转载请注明原文地址: [onchange=前端js函数,可以实现前端实时更新以及修改验证] onchange机制:不需要保存数据到数据库就可以实时更新用户界面上的显示. @api.onchange('监听的字段', '监听的字段'...) def _onchange_受影响的字段(self): # set auto-changing field self.受影响的字段 = 根据监听…
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9280723.html  [onchange=前端js函数,可以实现前端实时更新以及修改验证] onchange机制:不需要保存数据到数据库就可以实时更新用户界面上的显示. @api.onchange('监听的字段', '监听的字段'...) def _onchange_受影响的字段(self): # set auto-changing field self.受影响的字段 = 根据监听字段计算出受影响字段的值…
[关于odoo新API的介绍,Internet上资料很少,或者不够完整详实,这会对初学者造成很大的困惑,本篇的目的就是希望能帮助新手了解新API的大概] odoo 新api的实现是借助于python装饰器,关于python装饰器的知识,请自行参考python相关手册. 新API的装饰器主要有以下几种: model,multi,one constrains,depends,onchange,returns 还有一些像 cr,cr_context,cr_uid,cr_uid_context,cr_u…
以一个例子开头* To-do 向导   # 配置文件       __openerp_.py:         { 'name': 'To-do Tasks Management Assistant',    'description': 'Mass edit your To-Do backlog.',    'author': 'Daniel Reis',    'depends': ['todo_user'],    'data': ['todo_wizard_view.xml'], }  …
在前面的文章中,我们学习了模型层.如何创建应用数据结构以及如何使用 ORM API 来存储查看数据.本文中我们将利用前面所学的模型和记录集知识实现应用中常用的业务逻辑模式. 本文的主要内容有: 以文件为中心工作流的阶段(stage) ORM 方法装饰器:@api.multi, @api.one和@api.model onchange方法,与用户即时交互 使用 ORM 内置方法,如create, write 和 unlink Mail 插件提供的消息和活动功能 创建向导来帮助用户执行复杂操作 使用…
                                               odoo10总结 1.odoo中的向导应用. .py文件 # -*- coding: utf-8 -*-from odoo import models, fields, apifrom odoo.exceptions import UserErrorfrom odoo.tools.translate import _ class ImportWizard(models.TransientModel):…
记录集 model的数据是通过数据集合的形式来使用的,定义在model里的函数执行时它们的self变量也是一个数据集合 class AModel(models.Model): _name = 'a.model' def a_method(self): # self can be anywhere between 0 records and all records in the database self.do_operation() def do_operation(self): print s…
(1) odoo视图字段,如果是readonly,默认该数据是不会往后台传递的,因此,保存数据的时候,该字段的数据是不会存到数据库中的.(待确认,字段中增加默认值,保存) (2)视图界面,注释的时候,一般情况,饿哦们认为注释的代码,启动服务时,就不会被解释:其实不是,当视图中没有涉及变量的action视图ID引用指向的时候,这种情况下,确实没有影响:但是,如果被注释的该段代码,包含了引用另一个窗口视图的ID,即使注释掉,当你更新升级模块的时候,还会加载,出现视图外部extend id找不到的异常…
odoo有着强大的消息记录.通知机制: 实际开发中,常常会有客户的需求,页面上form视图中的某些字段不允许反复修改, 假如有的用户修改了,恶意搞坏,往往容易给公司利益造成损失,或破坏,那么如何有效的记录相关用户的操作, 提供一定的安全审计功能? 别担心,odoo已经为我们考虑到了!!! 下面我们就来介绍下, 首先,先保证整体基本的消息记录功能,两个地方需要修改,模型和form视图 在你需要消息记录的模型申明中,添加如下红色部分代码: class TestModle(models.Model):…
1.检查业务逻辑中的错误,终止代码执行,显示错误或警告信息: raise osv.except_osv(_('Error!'), _('Error Message.')) 示例代码: #删除当前销售单,需要验证销售单的状态 def unlink(self, cr, uid, ids, context=None): for rec in self.browse(cr, uid, ids, context=context): if rec.state not in ['draft']: raise…
       Odoo的市场定位是SME(中小型企业),这个市场的ERP产品,多如牛毛,产品各具特色.不过,Odoo的自动化处理机制,可以睥睨天下,无人能及.包括一些大型国产软件,如用友.金蝶也不具备如此强大的自动化业务处理功能.Odoo的业务自动化机制,可以非常容易地扩充ERP系统功能,非常容易地让业务工作自动化. Odoo自动化动作 如下图,增加一个自动化动作,“自动删除过期的SaaS DB”.系统会按定义好的条件筛选出符合条件的数据记录(业务对象),自动执行定义好的Server Actio…
(1)导入模块可以起别名: (2) 新的模型前端要调用显示有关联的另一个模型的相关字段 (3) 传递上下文 搜索视图打开默认按照接收的参数搜索显示: 发起端视图 上下文写法: 目标端 触发显示,搜索视图写法 注意字段名要写对!!! ******************************************************************************************************************************* 前端显示 模…
odoo工作流 介绍 新版本的odoo开始减少workflow的使用,推荐使用workflow-ish的方式来处理工作流过程 很多模块中还是使用到工作流,这里我记录一个简单的实例,欢迎大家给出建议. 在本实例中工作流可以分为两个部分,一部分是"view视图",一部分是"model方法"和相关的"流程字段" 定义流程流转字段 state = fields.Selection([ ('draft', '草稿'), ('read', '已阅'), ('…
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281437.html Odoo自带的api装饰器主要有:model,multi,one,constrains,depends,onchange,returns 七个装饰器. 一.one one的用法主要用于self为单一记录的情况,意思是指:self仅代表当前正在操作的记录. 二.multi multi则指self是多个记录的合集.因此,常使用for—in语句遍历self. multi通常用于:在tree视…
odoo api修饰器介绍与应用 参考文档:https://www.cnblogs.com/kfx2007/p/6093994.html 一.one one的用法主要用于self为单一集合的情况,被one装饰的方法会返回一个list[None] 例子: @api.one def _get_date(self): self.date=fields.Date.today() 二.multi multi则要求self是多个记录的合集,env中包含ids参数 例子: @api.multi def wri…
一.odoo中 页面上字段变化引起其他字段范围变化-onchange @api.onchange('company_id') def onchange_parent_id(self): return { 'domain': {'parent_id': [('company_id', '=', self.company_id.id)]}, } 二.odoo中 mail.message 的使用 使用mail.message,分三步走:  #在表的下面 继承这段话 _inherit = ['mail.…
前言 上一篇文章(创建你的第一个应用模块(module))已经大致描述了odoo的模型层(model)和视图层(view),这一篇文章,我们将系统地介绍有关于model的知识,其中包括: 1.模型的类型:Model.TransientModel.AbstractModel 2.模型的属性:_name,_description,_table,_order等 3.模型的字段类型:Char.Boolean.Selection.Binary.Integer.Float.Date.Datetime.Htm…
动作的加载: 刷新视图页面执行load_views方法 /web/dataset/call_kw/model_name/load_views 在odoo/models.py的BaseModel中有一个load_views方法 @api.model def load_views(self, views, options=None): """ Returns the fields_views of given views, along with the fields of the…
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826350.html 一:Header头部 header区域一般用于展示文档流转的阶段和生命周期,以及动作按钮. 表单的生命周期通过状态栏小控件呈现当前所处的状态,这些通常是状态选择字段或者多对一的阶段字段. 状态是一个选择列表,呈现的是过程中有几个相当稳定的步骤阶段,例如:新建.处理中.完成. 操作按钮一般为表单按钮,最重要的阶段可以使用class=“oe_highlight”突出显示. 二:Shee…
场景描述: 项目需求中,经常会需要,当某个字段处某个特定状态时候,触发执行特定的方法:或者创建某条记录的时候,同时做另一个操作:如何实现类似的需求? 实现方式: odoo中提供了几种触发方式: 1. 字段级别 --前端触发:@api.onchange装饰器  ---相当于update变更操作的时候触发 2. 字段级别 --后端触发:@api.depends装饰器  ---相当于update变更操作的时候触发 3. 模型/表级别  --继承扩展create方法 4. 模型/表级别  --继承扩展w…
开发中经常有这样的场景,需要给某个日期或者时间的字段默认值: 例如: 日期,默认今天 时间,默认当前时间 可以在odoo模型定义中进行设置, 如下样例提供参考: test_data = fields.Date(string=u"日期", default=fields.Date.today) # 默认值为:当天 test_time = fields.Datetime(string=u"时间", default=fields.Datetime.now) #默认值为:系统…
本文将学习如何为用户创建图形化界面来与图书应用交互.我们将了解不同视图类型和小组件(widgets)之间的差别,以及如何使用它们来提供更优的用户体验. 本文主要内容有: 菜单项 窗口操作(Window Actions) 表单视图结构 字段 按钮和智能按钮 动态视图元素 列表视图 搜索视图 其它视图类型 开发准备 我们将继续使用library_checkout插件模块,它已经有了模型层,现在需要视图层来实现用户界面.本文中的代码基于第八章 Odoo 12开发之业务逻辑 – 业务流程的支持,相关代码…
在前面的文章中,我们学习了模型层.如何创建应用数据结构以及如何使用 ORM API 来存储查看数据.本文中我们将利用前面所学的模型和记录集知识实现应用中常用的业务逻辑模式. 本文的主要内容有: 以文件为中心工作流的阶段(stage) ORM 方法装饰器:@api.multi, @api.one和@api.model onchange方法,与用户即时交互 使用 ORM 内置方法,如create, write 和 unlink Mail 插件提供的消息和活动功能 创建向导来帮助用户执行复杂操作 使用…
罗列一些odoo开发中的简单但有效的方法: 1.重写odoo登录代码 参考链接:odoo10-重写登录方法 from odoo import models, fields, api, SUPERUSER_ID class Users(models.Model): _inherit = "res.users" @classmethod def _login(cls, db, login, password): user_id = super(Users, cls)._login(db,…
网上已经有大佬翻译过odoo12并且在翻译odoo14了.各位着急的可以自行搜索下... 这本书是为了让自己从odoo12转odoo14学习.也是为了锻炼下自己... odoo 14 Development Cookbook 这本书是Parth Gajjar.Alexandre Fayolle.Holger Brunn.Daniel Reis几位作者写的,感谢! 后面将以此为教材,记录学习过程! 学习过程中,基础的内容将采用机翻,不通的内容会做调整. 目录 第一章.安装odoo的开发环境 1.…
今天继续研究ORM的BaseModel,昨天研究了一下所有常用属性的具体用法,那么今天研究一下BaseModel中一些常用的方法,我们学会它们并灵活的应用它们,可以为我们开发解决很多的问题. odoo ORM的4大将 - 增删改查(非常重要) 增 - create方法 @api.model_create_multi @api.returns('self', lambda value: value.id) def create(self, vals_list): # vals_list是一个列表数…
本文来源:https://www.jianshu.com/p/e892bf01f036 Odoo开发规范 模块结构 文件夹列表及对应作用 data/:演示和数据文件 models/:模型定义 controllers/:控制器(包含HTTP路由) views/:视图和模版 static/:web资源,包括css/, js/, img/, lib/, ... wizard/:向导及其视图 report/:报表 tests/:单元测试代码 文件命名 业务model放置在一个文件里,如果模块只包含一个m…
Odoo自带的api装饰器主要有:model,multi,one,constrains,depends,onchange,returns 七个装饰器. multimulti则指self是多个记录的合集.因此,常使用for-in语句遍历self. multi通常用于:在tree视图中点选多条记录,然后执行某方法,那么那个方法必须用@api.multi修饰,而参数中的self则代表选中的多条记录. 如果仅仅是在form视图下操作,那么self中通常只有当前正在操作的记录. @api.multi @a…
案例0001 odoo中看板使用 #其中一定要many2one阶段字段名称 stage_id <kanban default_group_by="stage_id"> 否则 挂件widget="state_selection"会报错 ''' <field name="kanban_state" widget="state_selection"/> ''' 看板默认分组当无此类型当值时也默认出现在看板里…
上海序说科技,专注于基于Odoo项目实施,实现企业数智化,助力企业成长. 老韩头的开发日常,博客园分享(2022年前博文) 10月12日,Odoo16版本正式发布,本文将就Odoo官方在性能方面做的优化做一个总结.如果需要官方视频,可以翻阅B站,有不少朋友已经做了搬运工. 性能提升切入点 Odoo作为B/S架构的应用,终端用户一般使用的是浏览器访问.因此,对于用户侧而言,性能提升的感觉主要体现在用户点击后响应实现变化.如下图 官方将该过程分为了 Web应用终端 网络请求 业务应用 Odoo主框架…