笔记
颜sk
人的本质是学习
展开
-
python yield 大文件读取
大文件读取 python yielddef read_file(fpath): BLOCK_SIZE = 1024 with open(fpath, 'rb') as f: print(f) while True: block = f.read(BLOCK_SIZE) if block: yield block else: return原创 2021-03-10 09:47:12 · 547 阅读 · 1 评论 -
odoo 合并同模型两条记录功能
合并用户功能,将其他单据的关联也替换掉借鉴了odoo 14 的联系人合并功能开发,延申拓展,万能用法所见即所得 !!!!!看到就拆下!!!!!# -*- coding: utf-8 -*-# Odoo的一部分。我又拆了下来作为通用功能,所见即所得!!!!!!!!!!!!!# 作者:颜skfrom ast import literal_evalimport functoolsimport itertoolsimport loggingimport psycopg2import date原创 2021-03-03 19:42:28 · 787 阅读 · 1 评论 -
odoo 用户登录机制
可以直接更改此方法做二开来做各种验证登录使用 @classmethod def _login(cls, db, login, password): if not password: raise AccessDenied() ip = request.httprequest.environ['REMOTE_ADDR'] if request else 'n/a' try: with cls.pool.cu原创 2021-03-02 20:55:50 · 2295 阅读 · 2 评论 -
odoo 底层 用户界面详解(拆下作为一个权限申请模块功能了)
odoo 用户界面的详情本质上是一个 res.groups 群组的一个具象化,通过动态生成xml 视图文件来显示配置权限页面,个人感觉 odoo 的底层还是比较容易理解和好拆下来单独做功能的。所见即所得!# -*- coding: utf-8 -*-import itertoolsfrom odoo import models, fields, api, _from lxml.builder import Efrom itertools import chain, repeatfrom lx原创 2021-03-02 20:52:48 · 551 阅读 · 0 评论 -
odoo jinja2 渲染模板运用于world 报表,html5网页
贴代码from jinja2 import Environment, FileSystemLoaderBASE_DIR = os.path.dirname(os.path.dirname(__file__))templateLoader = FileSystemLoader(searchpath=BASE_DIR + "/static/templates/html1")env_files = Environment(loader=templateLoader)def reader_jiaja2原创 2021-03-02 20:32:52 · 340 阅读 · 0 评论 -
基于odoo 环境下的 python 电子签名
python 生成电子签名原创 2020-11-08 17:11:46 · 606 阅读 · 0 评论 -
微信多开,批处理
微信多开批处理语句,理论来说对电脑上任何软件都适用新建有一个 text 文件, 输入以下内容, 路径是你应用的路径,保存后更改文件名后缀为.batTASKKILL /F /IM wechat.exestart "" "D:\WeChat\WeChat.exe"start "" "D:\WeChat\WeChat.exe"...原创 2020-07-17 14:37:36 · 834 阅读 · 0 评论 -
odoo name_get , name_search
name_get() , 默认计算 display_name 的值@api.multi def name_get(self): res = [] demo = self._context.get('demo', False) for record in self: name = record.name if demo and record.id2: name += "[示原创 2020-07-15 16:41:35 · 406 阅读 · 0 评论 -
odoo search , mapped , browse, read, super,、装饰器、时间格式转换
odoo 搜索 search search: 用法 self.env['模型名'].search([('name', '=', '示例')]) search_read : 用法 search_read([damain], [字段名]), 汇聚成一个list 列表,内置id值, 可选参数 , order 排序, limit 记录条数, 用在接口,数据库之间数据传输很方便 mapped: 用发 records.mapped('name'),汇聚成一个列表,也可于sear原创 2020-07-14 22:21:58 · 3545 阅读 · 3 评论 -
odoo 向导、按钮弹窗、菜单弹窗、表单右上角按钮跳转
odoo 向导向导是瞬时模型,不储存数据class DemoWizard(models.TransientModel): _name = 'demo.wizard' name = fields.Char('示例')无需 tree 视图, form 视图同普通表单视图,action视图如下<record id="act_demo_wizard_view" model="ir.actions.act_window"> <field name="原创 2020-07-14 16:02:19 · 2438 阅读 · 2 评论 -
odoo之底层模型 消息
消息模型在表单添加消息模型只需要继承 mail.thread 代码如下 calss Demo(mdoels.Model): _name = 'demo' _inherit = ['mail.thread'] _description = '示例' 在配置文件 依赖 mail 模块,depends [ 'mail']在视图中写入,以下视图,位置在 sheet 下, form 上 </sheet> <div class原创 2020-07-14 15:25:49 · 497 阅读 · 1 评论 -
odoo 创建单据自动生成序列号码
odoo 单据自动生成序列号码先在模型上继承改写 create 方法// An highlighted block @api.model def create(self, vals): vals['name'] = self.env['ir.sequence'].next_by_code('apply.collection.set') or '' return super(ApplyCollectionSet, self).create(vals)ir.s原创 2020-07-09 10:59:55 · 666 阅读 · 0 评论 -
C# 语言之 Hello World!
C# 语言之 Hallo World! 最近新学了个静态语言,C#, 这个语言刚开始入门把我搞死了。 C# 语言的编译器我用的是 Visutal Studio 的企业版,功能很强,开始因为怎么调试把我搞得头要炸掉了。 之前是用的 python 的IDE pycharm , 很好用,现在讲一下 visual studio 需要安装的工作负载,有可能你就是在这里栽倒,然后手动cmd检验调试代码的。 一定要装 .NET 桌面开发,这样才会有模板,后面的调试就可以直接在 VIsual Stud原创 2020-06-07 21:49:09 · 356 阅读 · 0 评论 -
odoo 接口自动化测试
odoo 接口自动化测试 话不多说,直接上干货 关于odoo的接口自动化测试我们就使用odoo的单元测试就可以了,本质上还是引用了 python 的一个标准库, 和 Django 差不多,有区别的地方可能就是在定义的时候吧。 先定义一个文件夹 tests , 它的树形结构图如下:(注意, 不用将此文件夹在最外围的__init__.py文件中引用)在 py 文件引用 unittest 库 和 requests 库,方便做测试原创 2020-06-05 23:17:41 · 651 阅读 · 0 评论 -
Odoo动态视图,动态字段,动态方法
odoo 动态字段&nsmp; &nsmp; 为什么要单独写一篇文章来写动态字段,是因为动态字段的难度可能比想象中要大,至于什么叫动态字段,就是根据业务需求来决定生成或者不生成某些字段,原创 2020-07-15 00:03:55 · 1445 阅读 · 6 评论