odoo小知识点
一只花里胡哨的程序猿
odoo二次开发
展开
-
odoo计算字段添加查询
odoo计算字段筛选!!!缺点:在调用 .filtered 方法的时候其实底层还是调用了 字段的计算方法,一旦filtered之后的数据量比较大时,筛选速度会受影响,所以 一般查询时把窗口动作的 domain作为查询条件再进行过滤,然后返回匹配记录集的id列表。优点:对所有的数据进行计算,即使是模块升级,字段不存储在数据库,能避免加上store=True时不触发计算方法的问题。缺点:加大了数据库的空间消耗,在模块突然升级时,原有的数据并不会触发计算方法。原创 2023-03-15 10:43:55 · 262 阅读 · 0 评论 -
odoo的密码机制
odoo忘记密码,如何批量验证数据库中加密的密码?调用 passlib模块中的方法验证密码,使用的对象和设置密码的对象是同一个对象,self._crypt_context().verify_and_update(password, hashed)。如果出现密码忘记的情况,可以将数据库中的hash值取出来,循环调用 verify_and_update方法验证多个可能的密码。self._crypt_contect()就是上述中的DEFAULT_CRYPT_CONTEXT对象。原创 2023-04-05 20:39:30 · 479 阅读 · 0 评论 -
odoo 消息提醒
2、通过 message_post_with_view 方法。第一个参数使 qweb 模板的id,value是要传入的值。1、在字段定义的时候添加 tracking 属性。只追溯 定义了该属性的字段。原创 2023-03-23 16:05:00 · 415 阅读 · 0 评论 -
odoo 实现选中记录时显示按钮
odoo如何实现可选显示按钮?主要是给tree视图添加一个原生的 o_sale_order 类,然后插入header标签。在选中记录时显示删除按钮,不选中时不显示。原创 2023-03-07 23:24:56 · 187 阅读 · 1 评论 -
odoo 上传自定义的导入模板
odoo修改系统默认的导入模板,通过看源码可以知道,进入这个页面的时候,系统默认调用了这个模型的 get_import_templates 方法,于是便重写这个方法,为了不和其他视图冲突,因为这个模型的其他视图可能用的是另外一个模板,加了一个上下文筛选。原创 2022-11-21 16:00:54 · 572 阅读 · 0 评论 -
odoo 字段inverse属性解析
odoo字段的inverse属性,字段total就是一个计算字段,设置了compute属性,绑定函数 _compute_total,而且使用了装饰器,随着amount字段值的变化而重新计算,由于计算字段是一个依赖字段,在前端页面用户是不能手动编辑的,而我们又想通过自动设置这个字段的值更新它所依赖的字段的值,这时候我们就要用到inverse属性。odoo中的反函数即通过设置字段的 inverse 属性实现,在讲这个属性之前,我们需要知道。当用户手动更新total的值的时候,amount的值也会随着更新。原创 2022-11-15 23:09:24 · 552 阅读 · 0 评论 -
odoo 13邮件模板
在经历无数次失败之后发现系统在渲染模板的时候会自动将 for循环前置到循环体上面,而不是我们所定义的包含了循环体。% for xx in xx: ... % endfor 表示for循环。正确写法是使用嵌套table标签,table>tr>td>table>tr>for。该模板使用的是 email.template模型,使用的引擎是jinja。如何使用这个模板动态的生成表格数据?object :表示对象的一条记录。${xxx} :获取xxx的值。原创 2022-11-07 17:50:17 · 563 阅读 · 1 评论 -
一个字段在多公司之间设置不一样的值
增加了这个属性之后,这个字段的值不会存在原来的表中,而是会存贮在ir_property。在多公司场景下,我们往往要让一个字段在不同公司显示的值不一样。company_dependent属性。这时候就需要在定义字段的时候使用。原创 2022-10-28 18:55:17 · 311 阅读 · 0 评论 -
odoo 常用小部件及其用法
odoo常用组件1、显示百分号2、标签组件3、handle 组件(拖拽排序)4、状态栏组件5、binary组件6、货币组件原创 2022-10-18 17:51:10 · 1501 阅读 · 2 评论 -
odoo第三方模块审批模块的使用
odoo 第三方审批模块的使用原创 2022-10-14 10:31:29 · 914 阅读 · 5 评论 -
odoo 的搜索视图添加侧边栏搜索
主要就是通过添加searchpanel标签,这个字段需要是selection字段或者多对一字段。原创 2022-10-13 14:43:10 · 459 阅读 · 0 评论 -
odoo 自定义单据编号
在开发模块的时候,我们有时需要像销售采购那些订单一样,在单据头那里创建一个序列号,odoo是如何在每次建单的时候这样自动地生成一个单据编号呢?在odoo中编号所对应的模型是ir.sequence。激活开发者模式,依次点击 技术>>序号。原创 2022-10-12 22:45:17 · 921 阅读 · 0 评论 -
odoo form视图明细行字段根据表头设置不可见
主要通过column_invisible属性设置,parent代表的就是Many2one的记录,同理一对多字段的。form视图也可以通过 invisible:parent.xxx的形式控制是否可见。原创 2022-10-12 17:52:25 · 268 阅读 · 0 评论 -
odoo 如何创建消息追踪
odoo消息追踪,主要实现是在模型定义的时候,继承'mail.thread', 'mail.activity.mixin'这两个模型,主要是通过tracking属性对消息追踪进行控制。原创 2022-10-10 00:28:49 · 684 阅读 · 0 评论 -
Odoo qeb模板的继承
如何继承qweb模板原创 2022-10-09 23:57:13 · 356 阅读 · 0 评论 -
odoo中domain的比较符号
在实际业务中,我遇到了这样一个需求:A or B or (C and D) or (D and E)因为‘&’符号在前端会进行转义,所以要转化成‘&’如果我们不手动加连接符号,他的默认是‘&’。这个域表达式可真的是折腾了我个把小时,如何写出一个复杂的domain?原创 2022-10-07 22:15:16 · 175 阅读 · 0 评论 -
odoo 如何自定义服务器动作
binding_view_types 为动作显示的视图类型,form,list 指的是即在form视图显示,也在tree视图显示。model_id属性和为调用python代码的模型,形式为 包名.model_模型名。code指的是python的方法名,形式为:recoreds.方法。bingding_model_id 为动作所绑定的模型。在点击动作之后调用相应的python代码。name属性设置显示名称。原创 2022-09-19 22:15:51 · 405 阅读 · 0 评论 -
odoo如何控制筛选的字段
这个筛选字段默认是显示所有字段,在我印象中是不包含不存在数据库中的计算字段。一旦一个模型的字段多起来,而我们经常筛选的往往是那么几个字段,所以这就加大了寻找这个字段的时间,这时便需要减少可用于筛选的字段,还有就是控制字段显示名称,是否可以用来分组。上述代码中的res是一个包含所有字段的字典,每个字段的所有属性也封装在一个字典里面,具体内容使用print打印出来便知道,通过赋值的方式设置字段的属性对字段进行控制,上述例子中设置字段在筛选时候的显示名称,已经设置是否可以搜索。原创 2022-09-17 00:40:38 · 486 阅读 · 0 评论 -
odoo 如何在tree视图上添加按钮
odoo 如何在tree视图上添加按钮,调用python后端代码处理同步数据当一个模型有多个tree视图的时候,如何在指定tree视图显示按钮?原创 2022-09-04 15:09:52 · 1939 阅读 · 0 评论 -
浅谈 odoo中的外部标识符
外部标识符,也称为XML ID,是用于唯一标识 Odoo 中特定记录的有可读性的字符串标识符。在Odoo 中加载数据时它们就很重要了,这样可以对已有数据记录进行修改或在其它数据记录中引用它。该段代码的作用是初始化了模型 report.paperformat 的一条记录,field为这条记录的各个字段,id就是这条记录的外部标识符,在odoo中的表现形式是 模块名.id。外部标识符仅需在 Odoo 模块内唯一,两个模块中使用相同标识符不会产生冲突,因为在odoo中外部标识符是以 模块名.id 的形式存在。..原创 2022-08-17 17:02:02 · 563 阅读 · 0 评论 -
odoo form视图添加按钮跳转其他视图
使用视图继承的方式,在原来的视图上使用xpath语法定位,然后button标签添加按钮,按钮的name属性为python后端所调用的函数名。该函数返回一个已经定义好了的动作视图,只不过加上了domain过滤条件,过滤当前的采购订单。............原创 2022-08-11 14:26:42 · 860 阅读 · 0 评论 -
odoo 设置字段可选显示
odoo 如何设置字段可选显示?做法是设置字段的 optional属性,值为 show或者hide,hide就表示默认不显示该字段,如何在不修改原来视图的条件下,对已有的视图的字段optional属性设置hide值呢?在新的继承视图里面使用xpath语法定位要设置的字段,并且设置optional属性。当tree中的字段过多时,我们通常会将一些字段设置为用户可选,而不是默认显示出来。...原创 2022-08-17 10:36:35 · 514 阅读 · 0 评论