- 博客(49)
- 收藏
- 关注
原创 Mac系统升级后brew失效
使用brew安装时出现:/usr/local/Homebrew/Library/Homebrew/version.rb:368:in `initialize’: Version value must be a string; got a NilClass () (TypeError)解决方法:brew update-reset
2022-01-04 14:48:30
1003
原创 冒泡排序
定义冒泡排序(Bubble Sort)也是一种简单直观的排序算法。基本步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。实现num = [12, 22, 4, 7, 2, 88, 19, 1, 22, 4]def bubble_sort(): for i in r
2021-06-19 17:33:03
341
原创 postgresql基础操作及常用命令
postgresql安装成功之后,会自动生成一个名为postgres的数据库和数据库用户。同时还生成了一个名为postgres的Linux系统用户。访问PostgreSQLlinux中切换postgres用户:sudo su postgres再输入psql,进入到postgres数据库首次进入输入\password postgres为postgres用户修改密码使用psql -d [dbname] 可登录其他数据库创建用户第一种方法,使用PostgreSQL控制台。创建用户同时赋予密码.
2021-06-11 21:11:23
670
1
原创 顺序查找
定义在一个已知无序(或有序)的队列中找出与给定的关键字相同的数的具体位置。 其原理是让关键字与队列中的数从开始一个一个地往后逐个比较,直到找到与给定的关键字相同的数。 当然,顺序查找绝不仅限于对数字、字符的查找,也适用于前缀、对象信息的关键信息的匹配等。实现to do…...
2021-06-11 14:46:25
159
原创 python中的赋值、浅拷贝、深拷贝
赋值在 Python 中,对象的赋值就是简单的对象引用a = 'hello world'b = aa 和 b 是一样的,他们指向同一片内存,b 不过是 a 的别名,是引用。可以使用 b is a 去判断,返回 True,表明他们地址相同,内容相同,也可以使用 id()函数来查 看两个列表的地址是否相同。浅拷贝(shallow copy)浅拷贝会创建新对象,其内容非原对象本身的引用,而是原对象内第一层对象的引用。浅拷贝有三种形式:切片操作、工厂函数、copy 模块中的 copy 函数。
2021-06-03 23:58:09
175
转载 postgresql与mysql的区别
【干货总结】:可能是史上最全的MySQL和PGSQL的对比材料运维了MySQL和PGSQL已经有一段时间了,最近接到一个数据库选型需求,于是便开始收集资料整理了一下,然后就有了下面的对比表关键词:PostgreSQL 11、MySQL5.7比较版本:PostgreSQL 11 VS MySQL5.7(innodb引擎) Oracle官方社区版版权情况:PostgreSQL 11(免费开源)、MySQL5.7 Oracle官方社区版(免费开源)1. CPU限制PGSQL没有CPU
2021-05-28 13:45:05
1278
原创 mac - fail to create ~/.config
问题描述:fail to create ~/.config/clash folder. Please check privileges or man如图:解决方法:sudo chmod 770 ~/.config
2021-05-26 19:30:10
6655
12
原创 windows和mac下的文件格式不同,脚本不能执行解决方法
问题描述:解决方法:vim 打开这个文件,命令行模式下输入::set fileformat=unix:wq!完美解决!
2021-05-25 15:23:34
756
1
原创 Linux中rpm和yum的区别
总结:rpm 只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的。yum是在rpm的基础上建立的一个工具,在配置好yum源之后很多功能比rpm命令更强大,更方便。rpm可以查询包安装后生成的配置文件等,查询未安装软件包中的内容,查询软件包相关的脚本。一般情况下软件包的查询,安装,卸载,和软件属于的软件包等命令用yum的相关命令来完成更好。...
2021-05-25 15:19:22
1391
原创 理解RPC
定义RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。to do…...
2021-05-25 11:57:10
135
转载 odoo记录集操作
合并记录集实现1 将两个记录集合并为一个并保留排序,使用如下操作:result = recordset1 + recordset22 使用如下操作合并两个记录集并确保结果中没有重复内容:result = recordset1 | recordset23 使用如下操作来查找两个记录集中共同的记录:result = recordset1 & recordset2运行原理针对记录集的类实现了不同的Python运算符的重定义,在此处进行了使用。以下为可用于记录集的最有用的Python
2021-05-20 16:27:20
885
转载 odoo 动态选择关联模型
前言对于引用字段,首先我们需要决定关联的目标模型(或comodel)。但有时我们会让用户来做决定,首先选定我们所要的模型然后记录想要关联的记录。实现ref_doc_id = fields.Reference( selection='_referencable_models', string='Reference Document')@api.model def _referencable_models(self): models = self.env['
2021-05-20 15:31:56
644
转载 odoo中的关系字段
Many2one定义每本书只有一个出版社,因此在图书和出版社之间可以使用 many-to-one 关联。运行原理Many-to-one字段向模型的数据表中添加了一列,存储关联记录的数据库ID。在数据库级别上,还会创建外键约束,确保保存的ID是对关联表中记录的有效引用 。对这些关联字段不会创建数据库索引,但这可通过添加 index=True 属性来进行完成。属性ondelete属性决定在关联记录删除时执行什么操作。例如,在出版社记录删除后图书会怎么样?默认值为’set null’,,会将该字段
2021-05-20 15:20:24
850
原创 odoo中的类属性
_name创建数据表,Odoo ORM会在数据库中创建一张library_book数据表_log_access=False不生成以下的字段:create_date是记录创建的时间戳create_uid是创建该记录的用户write_date是最近记录的编辑时间戳write_uid是最后编辑记录的用户_description描述_order排序,默认正序,倒序desc_order字符串的语法类似于SQL中的ORDER BY语句,但进行了简化。例如,不允许NULLS FIR..
2021-05-20 15:07:28
162
转载 odoo中的勾子(hook)函数
定义 有时,业务用例非常复杂,无法通过使用数据文件来进行解决。这些情况下,可以在声明文件中使用init钩子来执行所需要的操作。使用方法按照如下步骤来添加post_init_hook:在__manifest__.py文件中通过post_init_hook键来注册这个钩子:...'post_init_hook': 'add_book_hook',...在__init__.py文件中添加add_book_hook()方法:def add_book_hook(cr, registry):
2021-05-20 14:05:06
779
原创 python中的常用方法
join定义Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。用法>>> test = ['i','love','you']>>> ' '.join(test)'i love you'>>> '_'.join(test)'i_love_you'split定义Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串用法>&
2021-05-19 14:08:43
155
原创 odoo报表
定义odoo中的报表,是创建一张数据库视图。数据库视图和表的联系和区别联系:数据库中的数据都是存储在表中,视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。区别:1、视图是已经编译好的sql语句。而表不是2、视图没有实际的物理记录。而表有。3、表是内容,视图是窗口4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的
2021-05-10 15:59:07
1123
1
原创 python中的hasattr和setattr
hasattr用于判断对象是否包含对应的属性。hasattr(object, name)setattr给对象的属性赋值,若属性不存在,先创建再赋值。setattr(object, name, values)
2021-03-30 00:34:52
200
原创 odoo中存档功能的实现
前言odoo中有一个魔法字段:active, 只要在模型中使用了这个字段,动作下面会自动添加存档和取消存档按钮,存档了的默认页面不可见实现方法
2021-03-26 22:18:44
1184
原创 odoo 默认数据---many2many
默认数据一般放在data文件夹下代码 <record id="subject_data3" model="finance.fund.type"> <field name="name">信息流</field> <field name="flow_ids" eval="[(4, ref('sf_pay_apply.flow_ad_pay_apply')), (4, ref('sf_wipeoff_req
2021-03-15 19:45:26
420
原创 python装饰器
定义在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。本质上,decorator就是一个返回函数的高阶函数。不带参的装饰器:调用被装饰的函数时,会把自己作为参数传入装饰器方法并执行def deco_test(n): # 参数n为被装饰的方法 def test(a, b): return n(a, b)
2021-02-20 17:39:37
121
原创 python闭包
定义如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。一般形式def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fsf1, f2, f3 =
2021-02-20 17:04:07
75
原创 python中去除空格
去除空格1 strip(),去除字符串开头或者结尾的空格a = " ab cd ef "print(a.strip())>>>ab cd ef2 lstrip(),去除字符串头部的空格a = " ab cd ef "print(a.lstrip())>>>ab cd ef 3 rstrip(),去除字符串尾部空格a = " ab cd ef "print(a.rstrip())>>>
2021-02-20 16:50:02
488
原创 【ORM】 odoo常用orm
实现原理api 模块中的 Environment 类,我们就是要用这个初始化出一个 env 来操作数据库,不过 Odoo 已经在启动命令行时帮助我们将这个 env 初始化好了。我们可以利用 env 来得到我们的数据库模型,并且操作数据库表。Environment 通过ORM存储各种环境中的数据:数据库游标(数据库查询) 、当前用户 (用来权限检查)、当前环境(存储任意的元数据)。环境可以被存储在缓存中。所有的记录集都有一个不可变的环境,它可以通过 env 访问,通过 (user), 游标 (cr)
2021-02-17 14:20:02
592
原创 odoo动作详解
一 odoo动作一览图二 动作分类窗口动作(ir.actions.act_window )最常用的action类型,用于打开模型的各种视图。定义方式一:<act_window id="act_bangumi_view" name="Bangumi" res_model="bangumi.bangumi" # 需要在view里显示数据的model。 view_mode="tree,kanban,form" view_id=
2021-02-17 14:17:23
2292
2
原创 【装饰器】 odoo常用装饰器
1 @api.model此时的self仅代表模型本身,不含任何记录信息。当你认为这段代码跟self中的数据无关时,就加上@api.model装饰器,有点像类中的类方法2 @api.multimulti则指self是多个记录的合集。因此,常使用for—in语句遍历self。multi通常用于:在tree视图中点选多条记录,然后执行某方法,那么那个方法必须用@api.multi修饰,而参数中的self则代表选中的多条记录。如果仅仅是在form视图下操作,那么self中通常只有当前正在操作的记录。3
2021-02-17 14:09:16
771
原创 【继承】 odoo几种继承方式
一 原模型继承 /(in-place继承) /(类继承)新类继承父odoo模型的所有功能,仅需在其中声明要做的修改。在任何地方使用该模型修改都可用。关键字:_inherit (_name和_inherit相同,所以省略了_name,如下)二 原型继承_name 是模型标识符,修改会创建所继承模型的拷贝,成为一个新模型。这叫作原型继承。三 代理(delegation)继承 /(委托继承)使用代理继承时,原模型的方法并不能被继承。只能继承字段,可以读写子模型的字段。类似_inherits =
2021-02-17 14:06:35
1791
转载 200个python标准库
文本string:通用字符串操作re:正则表达式操作difflib:差异计算工具textwrap:文本填充unicodedata:Unicode字符数据库stringprep:互联网字符串准备工具readline:GNU按行读取接口rlcompleter:GNU按行读取的实现函数struct:将字节解析为打包的二进制数据codecs:注册表与基类的编解码器数据类型datetime:基于日期与时间工具calendar:通用月份函数collections:容器数据类型collect
2021-02-09 11:16:20
209
1
转载 odoo中_sql_constraints[]和@api.constrains的区别
在日常开发Odoo的过程中,我们不免要用到Constraints,中文就是约束。首先我们来介绍下Odoo里面的两种Constraints。一 _sql_constraints:就是添加一个数据库的约束。_sql_constraints是odoo的属性,是一个元祖的列表,每个元祖是一个数据库约束。元祖的第一个元素是约束名字,第二个元素是约束规则(postgresql约束规则),第三个参数是如果违反约束弹出来的警告信息。_sql_constraints = [ ('name_uniq',
2020-12-05 10:02:22
2155
原创 IMAC升级系统后遇到的PostgreSQL数据库问题
升级的系统版本如图:遇到的问题:psql: error: could not connect to server: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket “/tmp/.s.PGSQL.5432”?解决方法:1 先尝试重新启动数据库2 新升级的系统版本改变了原本的目录结
2020-11-19 13:24:15
515
1
原创 odoo 重写name_get实现不同模型显示不同名称
解决思路:通过在菜单动作的上下文里加入一个标识,然后在name_get中通过上下文的标识去判断具体实现:1 在视图的上下文中加入标识2 在name_get中进行判断
2020-07-10 09:52:15
602
原创 pycharm没有代码和错误提示
把Pycharm-File里【Power Save Mode 】前的勾勾给去掉再次输入 错误提示和代码提示就都有了~
2020-04-15 09:53:53
5610
1
原创 mac通过密钥远程登录服务器
1 mac本地生成密钥文件命令:ssh-keygen -t rsa -b -2048生成在目录/Users/当前用户名/.ssh下(ps:在mac访达窗口输入快捷键command+shif+g可通过路径定位到文件)2 通过windows登录远程软件将mac密钥传到服务器传到目录.ssh/authorized_keys下然后将mac秘钥文件追加到.ssh/authorized_key...
2020-04-15 09:05:06
2047
原创 ssh安全远程管理详解
1.1 定义ssh是Secure Shell的缩写,是一个建立在应用层上的安全远程管理协议。ssh是目前较为可靠的传输协议,专为远程登录会话和其他网络服务提供安全性。ssh大多用于UNIX和类UNIX操作系统中,能实现字符界面的远程登录管理,默认使用22端口。1.2 ssh的登录验证模式提供基于账户密码(口令)和秘钥对两种登录验证方式,这两者都是通过密文传输数据的。1 账号密码:ss...
2020-04-05 21:29:04
678
1
原创 【内置方法】odoo中可重写的内置方法
一 create(self,vals)根据视图传过来的dict对象,生成模型记录。点击保存时生效。需要自动生成编码 和 点击保存时需要触发一些方法时重写。写法如下:二 write(self,vals)记录的修改函数,参数也是dict。很少重写。三 read(self,fields)记录的查看函数,参数是查看哪些字段,默认是全字段,很少重写。四 unlink(self)记录的...
2020-04-04 17:03:29
3706
3
原创 sql多表查询 left join和right join的使用
在力扣看见一道题(如下),需要多表查询,所以学了下sql连接多表的语法我的解答如下:使用 MySQL 的 JOIN 在两个或多个表中查询数据有以下两张表Person:Course:1、LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。语句:SELECT * FROM Peron LEFT JOIN Course ON Peron .ID=Cours...
2020-04-01 23:09:42
836
原创 odoo的字段属性
1 store=True,计算字段要加2 readonly=True,设置字段只读3 index=True,增加数据库索引,提高搜索查找速度4 required=True设置字段必填5 size=64,char类型字段设置字符大小?6 default=False,默认值7 oldname=" "8 related=‘ ’ , 关系字段9 compute ...
2019-12-10 11:11:17
1285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人