odoo
颜sk
人的本质是学习
展开
-
odoo 合并同模型两条记录功能
合并用户功能,将其他单据的关联也替换掉借鉴了odoo 14 的联系人合并功能开发,延申拓展,万能用法所见即所得 !!!!!看到就拆下!!!!!# -*- coding: utf-8 -*-# Odoo的一部分。我又拆了下来作为通用功能,所见即所得!!!!!!!!!!!!!# 作者:颜skfrom ast import literal_evalimport functoolsimport itertoolsimport loggingimport psycopg2import date原创 2021-03-03 19:42:28 · 786 阅读 · 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 · 2292 阅读 · 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 · 550 阅读 · 0 评论 -
odoo js 抓取键盘输入
贴代码odoo.define('Product.barcode', function (require) { "use strict";var FormController = require('web.FormController'); FormController.include({ _barcodeScanned: async function (barcode, target) { this._super.apply(thi原创 2021-03-02 20:41:20 · 275 阅读 · 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 · 338 阅读 · 0 评论 -
基于odoo 环境下的 python 电子签名
python 生成电子签名原创 2020-11-08 17:11:46 · 604 阅读 · 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 · 405 阅读 · 0 评论 -
Odoo动态视图,动态字段,动态方法
odoo 动态字段&nsmp; &nsmp; 为什么要单独写一篇文章来写动态字段,是因为动态字段的难度可能比想象中要大,至于什么叫动态字段,就是根据业务需求来决定生成或者不生成某些字段,原创 2020-07-15 00:03:55 · 1439 阅读 · 6 评论 -
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 · 3539 阅读 · 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 · 2429 阅读 · 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 · 496 阅读 · 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 · 665 阅读 · 0 评论 -
odoo 接口自动化测试
odoo 接口自动化测试 话不多说,直接上干货 关于odoo的接口自动化测试我们就使用odoo的单元测试就可以了,本质上还是引用了 python 的一个标准库, 和 Django 差不多,有区别的地方可能就是在定义的时候吧。 先定义一个文件夹 tests , 它的树形结构图如下:(注意, 不用将此文件夹在最外围的__init__.py文件中引用)在 py 文件引用 unittest 库 和 requests 库,方便做测试原创 2020-06-05 23:17:41 · 650 阅读 · 0 评论 -
odoo字段基本类型 和 自己的一点小心得
odoo字段类型和用法基本字段类型关联字段类型引用类型保留字段计算字段动态字段基本字段类型Binary:二进制类型,用于保存图片、视频、文件、附件等,在视图层显示为一个文件上传按钮。【Odoo底层对该类型字段的容量作了限制,最多能容纳20M内容】Char:字符型,size属性定义字符串长度。Boolean:布尔型,单选框,勾选为True,不勾选为FalseFloat:浮点型,如 rate = fields.float(digits=(12,6)), digits定义数字总长和小数部分的位数。In原创 2020-06-01 23:15:07 · 852 阅读 · 0 评论 -
博客首发,浅谈odoo和内心的一点小骚动
浅谈作为一名小白级程序员,从今天开始准备写自己的博客,主要是想做一下自己的原始积累,其二,也是作为简历的一部分。odoo 是我接触的第一个框架,入行开始从基础学起,从后端语言python开始学起,前端的css,js,html多多少少都有些涉猎,不过odoo是一个前后端一体化的框架,刚开始有些不习惯,像前端的html是预定义的标签,而odoo的前端视图是 xml,自定义的标签多多少少给我带来了些不习惯。作为一个刚入行几个月的大二学生来说,可能我的认知方面是比较浅显的,在参与了几个项目之后,发现odoo是原创 2020-05-31 16:56:32 · 442 阅读 · 0 评论