odoo14开发 中级
文章平均质量分 67
开发笔记记录
lucky_fd_
这个作者很懒,什么都没留下…
展开
-
odoo14 many2many关联字段赋值详解及one2many字段定义及赋值
简介:实际项目开发中经常需要涉及到表与表之间数据的交互关联,Odoo中关联字段就是用来绑定表与表之间数据主从关系的。Odoo中的关联字段有:Many2one 主表中创建一个字段来存储从表记录的id。这就意味着主表的每条记录只能关联从表中的一条记录。打个比方,银行卡记录表是主表,我们的身份证是从表,每张银行卡只能属于一个人,也就是每张银行卡只能关联一个身份证。 One2many 和上边的Many2one是相反的,主表是身份证,从表是银行卡,一个身份证可以拥有多张银行卡。One2many和Many.原创 2022-05-30 19:45:12 · 7265 阅读 · 2 评论 -
odoo14 模型存在多个tree、form视图时,ir.actions.act_window窗口动作指定视图view_id的方法
简介:在大一点的项目开发中,一个模型往往不会只有一个tree、form视图,有时会根据要求实现一个模型有多个表单显示。这时就需要特定的窗口动作指定特定的视图。1. ir.actions.act_window窗口动作name 窗口动作名字 res_model 绑定模型 views( view_id,view_type) (可选的数据库ID,视图的类别(树,窗体,图形等) # 如果没有提供ID ,则客户端对应请求的模型获取指定类型的默认视图是由 fields_view_get() 方法获得. # .原创 2022-05-23 19:02:43 · 1476 阅读 · 0 评论 -
odoo14 context上下文的用法及使用场景
我们在写程序的时候经常会遇到这样的场景:跳转视图的时候想要把当前视图的数据同时传递过去,在另一个视图直接使用 定义one2many字段时,把当前的数据传递到one2many字段的表直接使用 定义一个向导,将当前页面的数据传递到向导页面 跳转视图界面时进行默认搜索显示此时我们就需要用到contex上下文了。context是一个字典context={'字段名1':'字段值1','字段名2':'字段值2',}1.获取context的方式:self._context 获取整个...原创 2022-05-10 15:56:47 · 3615 阅读 · 5 评论 -
odoo14 搜索和分组查询函数
Odoo搜索和分组查询函数:search、name_search、search_count、search_read、read_groupsearch(): 搜索视图中调用 search_count(): 视图中计算记录数时调用 name_search(): 模型记录在被关联、被搜索时调用 search_read(): many2one点开搜索更多时调用 read_group(): 搜索视图分组时调用这里主要讲read_group()函数read_group(self, domain, fi原创 2022-04-18 10:44:56 · 1707 阅读 · 0 评论 -
odoo14 tree视图列表视图设置固定列宽
1./static/src/css/下新建field_width.css文件# name 为你的模块字段名字,work_plan为模块名.model_work_plan .o_list_table th[data-name="name"]{ min-width: 95px !important; width: 95px !important;}2.新建xml文件引入css文件<?xml version="1.0" encoding="utf-8"?><原创 2022-04-16 16:57:47 · 1728 阅读 · 0 评论 -
odoo14 TypeError: Model ‘hr.employee‘ does not exist in registry.
运行程序报错:TypeError: Model 'hr.employee' does not exist in registry.产生问题现象:新建了一个模块,去继承修改原模块的内容,程序代码格式检查无问题,但是报错Traceback (most recent call last):File "/opt/odoo12/odoo/odoo/modules/registry.py", line 86, in newodoo.modules.load_modules(registry._db, f.原创 2022-04-16 16:46:13 · 1375 阅读 · 0 评论 -
odoo14 many2many字段类型变化记录追踪
odoo自带的mail.thread模块具备字段变化记录功能,不过针对One2many和Many2many字段不生效 具体原因可以查看odoo源码中odoo/addons/mail/models/mail_tracking_value.py 中45行create_tracking_values函数中的处理字段追踪及消息记录参考我另一篇文章:https://blog.csdn.net/weixin_44863237/article/details/123736932?spm=1001.2014.3001.原创 2022-04-14 13:24:55 · 972 阅读 · 0 评论 -
odoo:domain域表达式的常用方法
1.Domain的写法Domain是一个元组,由3个元素组成 [('字段名', '操作符', 值)]字段名如果是Many2one/Many2Many/One2many字段,可以通过’.‘取出对应的属性,如:(‘create_uid.company_id.parent_id’,’=’, user.company_id.id)操作符操作符 说明主要说明一下 child_of:[('create_uid.company_id','child_of',[user.compan...原创 2022-01-19 09:50:34 · 2495 阅读 · 0 评论 -
odoo14:权限管理(访问权限及记录规则)结合开发经历详细讲解
前言:odoo框架自带了比较完善的权限控制机制,包含两种数据驱动机制来管理或限制对数据的访问。这两种机制都通过组链接到特定的用户:一个用户属于任意数量的组,安全机制与组相关联,从而将安全机制应用于用户。1.odoo权限的层级划分根据对象不同主要分为四个层级:对象(表级)访问权限、记录规则级权限(可以理解为表的行权限管理)、字段级权限(一个对象或表上的某些字段的访问权限)、菜单权限关系:先判断对象级权限,满足条件再判断记录规则级权限,满足条件再判断字段级权限。可以..原创 2022-01-21 10:00:21 · 4550 阅读 · 0 评论 -
odoo自动获取当前日期赋值给字段
有时候我们需要获得当前的日期,并默认赋值给日期字段。我在使用odoo自带的fields.date.today()时出现了一个问题:我的一个日期字段属性不能实现获取当天的时间,它现在默认获取的程序运行当天的时间,而不是目前的实际时间,感觉很奇怪。因为不太清楚fields.date.today()的底层实现逻辑没办法解决问题,因此我换了一种实现方式。自己重写了一个获取时间函数,通过Java代码去获取时间然后赋值给字段,实验后功能正常。 import datetime # 获取原创 2022-02-15 10:00:52 · 1316 阅读 · 0 评论 -
odoo14 tree/from视图左上角添加自定义按钮
我们通常在form视图中可以很简单地在header里面添加按钮,但是在某些情况下,我们也需要在Tree视图中添加按钮,但是odoo官方目前没有给我们提供相应的接口,因此,我们尝试自己来实现它。实现效果如下:1.创建按钮首先,我们需要先把按钮的样子给它做出来,我们需要在项目路径下(xxx/static/src/xml/button.xml)创建一个xml文件:文件中o_list_button_add,是odoo的列表视图提供的【创建】按钮的标识,o_form_button_create,是o.原创 2022-02-16 20:30:43 · 1992 阅读 · 2 评论 -
odoo如何在原模块上进行扩展或者继承重写新模块以及对视图继承
Odoo提供三种不同以模块化方式扩展模型:原型继承:从现有模型创建新模型,向副本添加新信息,但保留原始模模型(常用) 扩展继承:扩展其他模块中定义的模型,替换以前的版本(常用) 委托继承:将一些模型的字段委托给它包含的记录原型继承(带_name继承,创建新的表)当同时使用_inherit和_name属性时, Odoo使用现有的模型作为基础来创建一个新的模型。 这个新的模型从基础模型中获取所有的字段,方法和元信息(默认值和al)class HrEmployeePublic(mode...原创 2022-02-16 20:34:17 · 2571 阅读 · 2 评论 -
odoo14 关联字段many2one many2many按条件筛选显示记录
简介:我们在使用关联字段时有时候需要对关联的记录进行筛选显示或者更改关联字段的显示值,我这里整理了三种方法方便大家参考。场景1:针对不同的群体,many2one字段显示出来可供选择的记录不同场景2:不想用odoo默认的many2one字段显示值,想自定义显示值静态筛选是使用字段自带的domain参数进行筛选,这种方式是程序一运行就会执行,没办法根据实际的参数设置筛选条件,所以只能实现固定筛选。...............原创 2022-02-19 12:57:58 · 4721 阅读 · 1 评论 -
odoo14 开发常用资料收集总结
1.Model.py文件搜索指定表单记录res = self.env['hr.employee'].search([])2.View.xml文件3.Security.xml文件4.manife.py文件5.static文件原创 2022-03-09 11:46:45 · 539 阅读 · 0 评论 -
odoo14 mail.thread邮件消息机制(发送消息、字段变化跟踪记录)mail.activity.mixin安排活动
odoo里面 字段追踪、消息通知机制:一、使用方式:1、在定义模型的py文件里继承mail模型:class DemoModle(models.Model): """ 模型名称 """ _name = 'demo.model' # 定义 模型名(类名) 必写 _rec_name = 'name' # 定义 模型引用时 显示的默认字段 非必写 _description = 'demo model' # 定义数据库中的表名 非必写...原创 2022-03-25 15:31:59 · 1760 阅读 · 1 评论 -
odoo14 Botton按钮标签属性详解及按钮图标使用
1)icon按钮图标名odoo系统的小图标都采用了 fontawesome字体图标:http://www.fontawesome.com.cn/faicons/# 首先打开官网 http://fontawesome.dashgame.com/ 找到喜欢的小图标 ,举例 看到一个漏斗图标,在旁边看到 英文名 filter # 写到视图文件的元素中,用icon 如: <button string="Products" class="oe_sta...原创 2022-03-31 10:09:07 · 1291 阅读 · 0 评论 -
odoo14 定义kanban视图图片报错:Uncaught TypeError: Cannot read property ‘raw_value‘ of undefined
定义kanban视图报错:Uncaught TypeError: Cannot read property 'raw_value' of undefined未定义<field name="id"/>导致,从doo12开始必须先申明id字段,加上<field name="id"/>就可以了<odoo><record id="test_kanban_view" model="ir.ui.view"><field name="name">原创 2022-03-31 13:46:00 · 1166 阅读 · 0 评论 -
odoo14 active字段:存档与取消归档
odoo中有一个魔法字段:active, 只要在模型中使用了这个字段,list视图动作下面会自动添加存档和取消存档按钮。归档的功能可以用来不删除记录,来达到隐藏数据的效果,在某些场合特别方便。active = fields.Boolean(default=True)添加了active字段列表动作框通过设置active字段的值为False,就可以达到隐藏记录的效果。如果想要将隐藏的记录重新显示出来该如何做呢?Odoo源码的model模型中有这样一段代码:含义为如果模型中有active字段原创 2022-04-07 15:21:16 · 1421 阅读 · 0 评论 -
odoo14 ir.sequence模型:自动生成唯一序列号
odoo为我们提供了一个很好用的序列号生成工具ir.sequence,使用该工具只需要在数据文件中注册一条ir.sequence记录,在模型代码中就可以调用该序列。1.注册ir.sequence记录在需要生成序列号的模型xml视图文件中,添加一条ir.sequence记录,并可定义序列的前缀规则,如下: <record id="sequence_supplier_management_sn" model="ir.sequence"><!-- 添加ir.s原创 2022-04-08 16:51:14 · 1214 阅读 · 1 评论 -
【openEuler 21.9】odoo14开发过程问题解决记录
ERROR: No matching distribution found for werkzeug.posixemulation解决方法: 报错要么是没有安装werkzeug,要么是版本冲突。我的问题是版本冲突,后面把最新的flask卸载了,重新依照下面版本一一安装问题解决。Successfully installed Flask-1.1.1 Jinja2-2.10.1 MarkupSafe-1.1.1 Werkzeug-0.15.5 click-7.0 itsdangerous-1.1.0E原创 2021-12-28 17:30:29 · 1886 阅读 · 0 评论