自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 如何覆盖 Odoo 14 PoS 中的小部件

在此博客中,我们可以了解如何覆盖 POS 中的小部件。小部件是用户界面最重要的构建块,或者我们可以说在 Odoo 中,用户界面中的大多数组件都是使用小部件进行控制的。现在让我们看看当我们单击批次和序列号弹出窗口的“确定”按钮时如何显示错误弹出窗口。首先,我们必须扩展 EditListPopup 小部件并编写在单击“确定”按钮时显示错误弹出窗口的代码。在这里,我们可以根据需要设置要在错误弹出窗口中显示的标题和内容。通过这种方式,我们可以覆盖一个小部件并添加我们想要的任何内容。现在我们将创建一个自定义模块。

2024-02-01 18:16:25 444

原创 关于Odoo Bus 总线库

Odoo 是一款流行的开源业务管理软件,拥有许多用于管理各种业务流程的应用程序,例如会计、销售、库存等。Odoo Bus 是一个消息传递系统,允许 Odoo 中的客户端和服务器之间进行实时通信。Odoo Bus 库是一个用于在 Odoo Bus 上构建实时应用程序的 Python 库。Odoo Bus 库可用于构建实时应用程序,无需新页面即可立即传输和接收更新。这是通过长轮询、Web 套接字或 SSE(服务器发送事件)来完成的,具体取决于客户端和服务器的功能。

2024-02-01 18:04:56 405

原创 如何使用 Gzip 和 NGINX 来减小 Odoo 网站和后端的页面大小

由于它压缩了内容,因此传输内容所用的带宽和时间比常规方法少很多。要打开 Gzip 压缩,您必须在 NGINX 文件的 Server 块中进行以下配置(您可以在 /etc/nginx/nginx.conf 文件以及 /etc/nginx/sites 中的文件中进行配置) -启用或/etc/conf.d/nginx)。我们可以提供text/scss text/javascript等内容类型,如果没有提供gzip_types,NGINX将响应text/html内容类型,Odoo最有利的配置如下。

2024-02-01 17:55:05 529

原创 Odoo14 中的小部件列表

们有不同类型的小部件用于不同的目的,帮助我们简化操作。小部件用于使代码变得简单且用户友好,这将有助于软件的编码和编程方面。在 Odoo 14 开发中,我们可以利用不同的小部件,这些小部件可用于编程操作的某些特定方面。这些简化工具将为简化编程操作铺平道路。在这篇文章中,我们将讨论可以在 Odoo 领域应用的不同小部件。所有可在 Odoo 中使用的 Widget 工具均与其相关的索引一起定义。在本博客中,我们总共介绍了 Odoo 中使用的 30 种小部件工具。

2024-01-26 20:21:56 1142

原创 如何在Odoo14中生成二维码

add_data 参数可用于将数据添加到二维码,在此示例中创建发票公司名称、付款参考、客户和销售人员详细信息的二维码。它由许多黑色方块组成,排列在白色背景的方形网格中,我们可以在其中嵌入成像设备可读的数据。在继承的python文件中,导入了图像的QRcode和base64库,并简单地为QRcode添加了二进制类型的计算字段。是一个参数,是1到40之间的整数,控制二维码的大小用此方法,我们可以生成一个 QR 码,用于存储 Odoo 14 中不同记录的数据。如何在 Odoo 14 中生成二维码

2024-01-26 13:25:54 369

原创 Odoo14 动态过滤或联动domain

Odoo14 动态过滤或联动domain,在 Odoo14 中最常用的动态过滤或联动domain的方法有两种使用 上下文 context 和 重写 _search() 或 _name_search() 方法 使用 onchange() 装饰器 的 domain 返回值,需要了解更多的 onchange装饰器返回值内容

2024-01-17 16:47:46 9452

原创 odoo14 @api.onchange装饰器的返回值使用操作

odoo14,onchange装饰器的返回值使用操作,其中可以包含以下键,'value': 用于更新字段的新值。这个键对应的值是一个字典,其中包含要更新的字段名及其新的值。当字段的值发生变化时,这些新的值将被用于更新与这些字段相关的视图部分,'warning': 用于显示警告信息。这个键对应的值是一个字典,其中包含了用于显示警告的信息,如标题、消息和类型。

2024-01-16 12:17:05 9997

原创 odoo14 动态改变进度条颜色(widget=“progressbar“)底色,边框,进度颜色

这个组件 拥有普通组件widget=“progressbar“的所有功能,换言之 在widget=“progressbar“组件的js文件和模板文件的基础上进行改进,使其有更好的可移植性和可造性。odoo14 动态改变进度条颜色(widget=“progressbar“)底色,边框,进度颜色,,在odoo14中当时使用:widget="progressbar" 时默认表现为:

2024-01-13 21:43:10 12755

原创 odoo14 根据主表字段动态改变子表的创建,编辑,删除属性

odoo14 根据主表字段动态改变子表的创建,编辑,删除属性,子表数据的编辑,删除和创建状态得根据主表的某一或几个字段值而动态在。利用 options和attrs 属性实现,字段就需要在字段中添加options和attrs了。这三个控制也可以相互使用,比如:不可创建和不可删除,可编辑不可删除 等根据业务需求定制。当我的编辑控制为:不可编辑时,编辑状态下子表不可以新创建数据且不可以编辑。当我的创建控制为:不可创建,编辑状态下子表不可以新创建数据。当我的删除控制为:不可删除时,删除状态下子表数据不可以删除。

2023-12-28 17:35:29 14530

原创 树莓派(linux)使用Motion动作捕捉或实时获取视频

在浏览器输入ip:8081,查看第1个摄像头视频,如果有多个摄像头,访问不同端口号即可,如ip:8082,ip:8083。已知的,最大可以支持3个。修改/etc/motion/motion.conf,如下图所示,去掉cameraX前的注释,即启用该摄像头配置,motion会自动读取配置文件,启动多个摄像头。stream_maxrate 70 #默认为1,图像会比较卡,将这个参数设置为 100 或者小点的(可以自行观察后配置),之后发现视频流非常流畅树莓派(linux)使用Motion动作捕捉或实时获取视频

2023-12-28 10:07:37 8829

原创 python多线程同步:Event对象

python线程同步:Event对象,set()— 全局内置标志Flag,将标志Flag 设置为 True,通知在等待状态(wait)的线程恢复运行isSet()— 获取标志Flag当前状态,返回True 或者 Falsewait()— 一旦调用,线程将会处于阻塞状态,直到等待其他线程调用set()函数恢复运行clear()— 将标志设置为False。

2023-12-28 09:58:21 11530

原创 webscoket多个客户端同时向一个服务器传输数据

webscoket多个客户端同时向一个服务器传输数据,同一个局域网下,服务器取图片流 发送给客户端 客户端连续展示图片(视频)在服务器和客户端一对一的情况下,视频流可以正常传送,没有任何问题,当服务器同时发送视频流给两个或两个以上的客户端时,服务端会出现断流情况,直接导致代码挂掉服务端读取摄像并传送给连接的客户端(可以多个)连接服务端并持续接受服务端发送的照片形成视频。

2023-12-28 09:53:41 627

原创 websocket获取实时数据的几种常见链接方式

websocket获取实时数据的几种常见链接方式。第一种, 使用create_connection链接,需要pip install websocket-client (此方法不建议使用,链接不稳定,容易断,并且连接很耗时),,第二种,运行效果很不错,很容易连接,获取数据的速度也挺快,第三种,其实和第一种差不多,只不过换种写法而已,运行效果不理想,连接耗时,并且容易断,第四种,运行效果也可以,run_forever里面有许多参数,需要自己设置

2023-12-28 09:48:12 1012

原创 Linux Vim编辑器命令

末行模式:在编辑模式中,英文冒号即是末行模式(英文输入法:shift+:)写入模式:在编辑模式中,按 i ,o,I,O等命令即到写入模式。注:写入模式和末行模式 按 ESC 键即进入 编辑模式。编辑模式:vim [文件名] 回车进入 编辑模式。sudo vim [文件名]

2023-12-28 09:35:17 481

原创 odoo14智能按钮实现

odoo14智能按钮实现,odoo14的智能窗口实现,odoo14的智能窗口实现,在 Odoo 14 中,智能按钮通常使用 ir.actions.server 或按钮的形式实现。以下是创建智能按钮的一般步骤,这里有两种方式:1、button的object方式。1、button的action方式。点击这个数量时,只展示该医生的病人数据。

2023-12-23 23:05:44 11698

原创 odoo14中 @api.onchange(),compute的@api.depends(),@api.constrains()的使用事项

在Odoo 14中,@api.onchange()、@api.depends() 和 @api.constrains() 都是装饰器,用于定义特定类型的方法,以便实现不同的功能。这些装饰器分别用于字段值变化时的动作、计算字段值的逻辑以及在保存记录前执行的验证。

2023-12-15 14:06:28 3635

原创 odoo14前端批量下载附件(可以多个附件)模块

在odoo项目中,将当前列表中被选中记录(一条记录可能有多个附件)的附件在前端批量下载下来,形成一个压缩包,并且通过记录表单字段值进行分类,同一个记录的附件放在以当前表单字段命名的文件夹中。先进行构思:先选中记录,点击某个按钮或动作(带防抖功能)执行 post 请求并附带选中记录的当前模型名称和ID的内容,后端在接收到请求后,根据post附带的信息获取对应附件打包压缩发送前端,前端接收后处理数据并下载。应为需要多个列表使用,写成通用模式。1.在需要的模块中安装该模块的依赖。编写发送和接收数据的通用js代码。

2023-12-13 13:06:53 832

原创 odoo14动态显隐编辑(创建)按钮

【代码】odoo14动态显隐编辑(创建)按钮。

2023-12-12 15:41:57 580

原创 odoo14配置发送邮箱(邮箱重置密码功能)

在登陆页面点击重置密码,在输入你的点击邮件,点击确认,你的邮箱就会收到一个修改密码的链接需要配置的数据有:用户的电子邮箱地址(一般是登录名称)、用户对应公司的电子邮箱地址(公司的电子邮箱)、发送服务器(路径为:技术->电子邮件->发送服务器)他们的相互关系和联系:当以上全部配置好以后,当你在使用电子邮箱重置密码时,odoo框架就会寻找你输入电子邮件的对应用户,找到这个用户之后,获取这个用户公司对应的电子邮件,然后会根据对应公司的电子邮件给用户的电子邮件(用户对应的电子邮寄,一般是用户的登入名称)也就是重置密

2023-12-12 14:49:23 8103

原创 odoo14:create方法的底层逻辑

在上面的代码中,我们通过 env 属性获取了当前环境中的 my.model 模型,并调用了 create 方法来创建一条新的记录。在实际使用中,可能还需要进行一些额外的操作,如检查用户权限、验证输入数据的有效性等。4如果在创建的数据中有password字段会自动将其加密,加密之后再写入到数据库中。1创建一个新的记录对象(record)并将默认值设置为模型中定义的字段默认值。3调用记录对象的 create 方法,该方法会将新记录插入到数据库中。2将传入的参数中的值赋值给记录对象中对应的字段。

2023-12-12 12:33:03 14321

原创 odoo14页面各按钮的底层逻辑

总之,页面上的“保存”按钮实际上是通过调用模型的“write”方法来实现的。总之,页面上的“丢弃”按钮实际上是通过将表单中的数据恢复到最后一次保存记录的状态来实现的。1当用户单击“丢弃”按钮时,Odoo会将表单视图中的数据恢复到最后一次保存记录的状态,这意味着所有未保存的更改都将被丢弃。4在“create”方法中,Odoo创建一个新的空记录,然后将POST请求中的参数填充到该记录中。4在“write”方法中,Odoo检索指定的记录,然后将POST请求中的参数填充到该记录中。

2023-12-12 12:28:38 479

原创 odoo14新线程获取新的游标(逻辑)并关闭

odoo14新线程获取新的游标(逻辑)并关闭。

2023-12-12 12:25:28 413

原创 OSError: [Errno 121] Remote I/O error

sudo apt-get install i2c-tools -y 安装I2C库。可能是 需要的 外接设备接触问题(比如:arduino 未连接或是插头有问题)在代码中,使用到了:P5 I2C 服务,可能是:P5 I2C服务没有开启。把设备全部检查一遍,重新开启服务,发现设备没问题,还是报这个错误。上面步骤完成之后:重启:(这一步是必须要做的)开发板的I2C的接口是否开启了。设备与开发板之间是否正确连接了。设备的I2C地址是否更改了。使用 左右键 选择是或否。重启完成之后,重新连接。

2022-11-18 16:20:18 3846 1

原创 Linux页面触摸方向

sudo vim /etc/default/xrandr,打开文件xrandr,添加步骤1设置的那一行。(目的是重启不会变)可以选normal (正常的) left( 左边) right(右边) inverted( 倒转) 4个参数进行调整;sudo /usr/local/bin/ff_rotate left (left是参数),"xrandr --output DSI-1 --rotate$1" (设置的命令格式)

2022-11-11 17:42:03 6621

原创 PyCharm配置QtDesigner

点击 QTDesigner name配置显示的名称(如果没有 External Tools,重启pycharm)# 进入程序的主循环,并通过 exit 函数确保循环安全结束。program: 是 designer.exe 的绝对路径。打开 pycharm 运行一段代码,运行成功,包安装成功。# 创建QApplication实列。working director:默认配置。name:是 打开这个工具的名称。

2022-11-11 17:38:46 15233

原创 ESPHome 烧录时无法读取新的配置文件

在重新尝试离线烧录(usb烧录)时,发现连接的wifi还是旧网端的网,192.168.31.* 网端(配置文件已经修改好且保存)(配置文需要连接到WiFi是:XS_World,烧录过程logger日志连接的WiFi是:litter_creator)由此可以说明配置文件没有起到作用(也就是说在烧录时,所读取的配置文件不是现在的,还是之前旧网端的)查看是否有烧录不成功的板子的名字,这里是:esp8266_light_strip_02。对比可以发现:烧录过程的连接的wifi和配置文件里的wifi不同,

2022-11-10 16:41:37 604

原创 Linux输入密码一直循环在登录界面

把/etc/passwd中的root:x:0:0:root:/root:/bin/bash,改为root::0:0:root:/root:/bin/bash,就可以了,就是去掉了里面的x,这样root用户就不用密码了。我们只需将其修改为不执行gettty,而是执行自己编写的一个脚本,就可以跳过用户名和密码的输入。ubuntu软件的删除一般用“ubuntu软件中心”或“新立得”就能搞定,但有时用命令似乎更快更好~~sudo apt-get autoclean 清理旧版本的软件缓存。4,卸载:tracker。

2022-11-10 16:24:16 3572

原创 UPD无法直接使用asyncio

udp,UPD无法直接使用asyncio,在同一个时间循环中,异步是同一个线程在事件循环中来回切换调用,只有遇到 异步 await 函数等待时,才会去执行可执行的函数,而 recv 函数不可以使用 await 所以执行到 recv 时无法去执行其他函数,只有等待。

2022-11-07 09:47:45 276

原创 Linux 传输数据(Linux和windows)

scp [当前系统文件名] 目标系统地址:路径([email protected]:/home/pi/mypython)远程IP为:[email protected]:/home/pi/mypython/[文件夹名或文件名]注意:如果是传输的是文件夹,scp -r。注意:如果是传输的是文件夹,scp -r。当前ip为:192.168.9.11:/注意:如果是传输的是文件夹,scp -r。传输系统:192.168.9.47。接收系统:192.168.9.11。输入命令:sz [文件名]

2022-11-07 09:37:10 10637

原创 python线程同步:Threading-Event()

set()— 全局内置标志Flag,将标志Flag 设置为 True,通知在等待状态(wait)的线程恢复运行isSet()— 获取标志Flag当前状态,返回True 或者 Falsewait()— 一旦调用,线程将会处于阻塞状态,直到等待其他线程调用set()函数恢复运行clear()— 将标志设置为False。

2022-10-27 10:16:42 15171

原创 supervisor开机自启python程序

注意:一个python程序需要一个 .conf 文件,需要多个时 创建多个 .conf 文件。所有的 .conf 文件 都必须放在 /etc/supervisor/conf.d 文件夹中。Web管理后台运行的IP和端口,建议监听内网ip。

2022-09-29 14:27:45 648

原创 asyncio多线程操作:run_coroutine_threadsafe(coro, loop)

asyncio多线程操作:run_coroutine_threadsafe(coro, loop)

2022-08-18 11:47:52 3600

原创 Django drf 的 serializers.ModelSerializer 序列化 重写 Model的返回数据和字段 (两种方式)

instance : 是当前 model 所指定的对象。(当前为 Student)# 改变该字段返回的数据:函数定义为 : get_ + 字段名(有下划线)# source='sex' 指定model中要修改的字段,# 注意:函数名不能和 字段名重复 否则会覆盖,# 在指定的 model 下定义指定的返回数据。# self 指的是当前 model。

2022-07-15 16:51:01 10321

原创 Django drf 分页 (展示上一页和下一页)

pagination_class = MyPageNumberPagination # 配置自定义的分页器。page_query_param = 'page' # 查询参数。max_page_size = 5 # 最大每页显示五条数据。这是使用 APIView 且显示 有上一夜和下一页的。page_size = 3 # 每页显示3条数据。'PAGE_SIZE': 100 # 每页数目。# 输入的性别,返回相应的学生及所属班级名称。# 如果需要全局配置 在 setting 中配置。

2022-07-15 16:05:31 432

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除