odoo
隔壁小红馆
这个作者很懒,什么都没留下…
展开
-
odoo 邮件弹窗发送邮件
参照 销售单的弹窗发送模板。原创 2023-02-22 10:25:02 · 403 阅读 · 0 评论 -
odoo 弹框可拖动
odoo 弹框可拖动。原创 2023-02-22 09:18:23 · 166 阅读 · 0 评论 -
odoo 出现KeyError:‘ir.http‘错误解决办法
#####1 在加载odoo时出现错误#####2 首先检查一下配置文件,尤其是路径#####3 然后在Run /Debug Configurations 里输入 -i base -d 新数据库名#####4 重启服务器看可不可以,如果还不行就重装下数据库,更改一下数据库的版本,如果重装数据库还不行就重新载入源码,可能是不小心改动了源码看完记得点赞哦,笔芯......原创 2021-12-09 11:51:10 · 4467 阅读 · 5 评论 -
odoo 行信息展示
当行里出现行的信息时,tree视图无法展示。即可用下面数据格式来line_info = fields.Html(u'产品', compute='compute_product_productms')@api.multi def compute_product_productms(self): for order in self: html_str = "<table class='wight=100%'>" inde原创 2021-11-30 13:42:44 · 214 阅读 · 0 评论 -
ubuntu 创建定时任务
目前因为 odoo服务运行日志太多,导致日志文件太大,出现问题,故采用ubuntu定时任务来定理思路:先删除已有的日志文件,然后创建日志文件各位看官有好的思路,指点一二。1 常用的cron命令cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制crontab参数-u:编辑其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab crontab -u 使用者名称-l:可以列出crontab的内容-r:可以移除c原创 2021-10-13 10:39:30 · 2648 阅读 · 0 评论 -
odoo 清除旧数据遮挡
在odoo 的输入框,有时会被之前的旧数据遮挡,尤其是日期类型的,例如:很是让人抓狂,没有办法选择。至此,Odoo数据库也有清除旧数据的功能的autocomplete=“off”在字段上添加上 autocomplete=“off” 即可<field name="date" autocomplete="off"/>如果刷新页面后还是不行,记得清除浏览器缓存试试。...原创 2021-06-04 16:47:18 · 383 阅读 · 0 评论 -
odoo 当前数据库进行操作
获取当前共有多少个数据库import odoodb_list = odoo.service.db.list_dbs(True)print(db_list)当前操作的数据库from odoo import SUPERUSER_ID, _, api, fields, models, registrycr = registry(self._cr.dbname).cursor() # self._cr.dbname:当前数据库self = self.with_env(self.env(cr=cr原创 2021-06-04 13:52:48 · 408 阅读 · 0 评论 -
odoo 无代码开发增加字段
此需求是要在采购订单行里添加一个字段,但是不能有更新代码的操作。所以只能直接在系统里进行开发在菜单 设置-技术-模型 里搜索到采购行编辑,在字段栏位添加项目自定义字段必须是x_开头的,字段名称:x_abc字段类型:此字段类型字段标签:字段string必须的:必填字段只读:只读存储:存到数据库,store=True已索引:False已复制:复制的时候是否被复制值追踪:值变更是否显示记录序列化字段:未知关联字段: order_id.name (相当于related)依赖:计算字原创 2021-06-03 18:17:13 · 391 阅读 · 0 评论 -
odoo 得到元数据
在打开debug模式下,点击查看元数据,可以看到一些基础信息这个XML ID 在菜单 设置-技术-外部标识 中可以找到那我们如何得到里面的元数据呢在后端有一个方法可以得到,那就是 get_metadata()Model.get_metadata( )返回有关给定记录的一些元数据。返回: 返回每个请求记录的所有权词典列表返回类型: 具有以下键的字典列表:id:对象IDcreate_uid:创建记录的用户create_date:创建记录的日期write_uid:最后更改记原创 2021-06-02 11:59:48 · 186 阅读 · 0 评论 -
odoo postman测试odoo接口
最近在写接口,想学习一下postman以及测试接口,发现死活是连不上还是无法连接,在查看日志时,发现这么一句,Generating nondb routing其原因就是多数据库,无法确定是那个数据库解决办法就是在 .conf 文件里指定数据库...原创 2021-06-01 11:45:48 · 585 阅读 · 0 评论 -
odoo tree视图的分组功能字段值累加
其实在字段定义时,可以选择是否累加等操作,使用 group_operator示例:原创 2021-04-25 10:28:09 · 635 阅读 · 3 评论 -
odoo 禁用看板视图的拖拽功能
在看板视图中是有拖拽功能的但是如何禁用它呢,根据版本的不同,禁用方法不同。12及12以前的draggable="0"13和14以及…records_draggable="False"即可禁用拖拽功能,perfect原创 2021-04-22 11:04:47 · 400 阅读 · 0 评论 -
odoo many2many one2many的操作
(0,0,{values}) 根据values里面的信息新建一个记录。(1,ID,{values})更新id=ID的记录(写入values里面的数据)(2,ID) 删除id=ID的数据(调用unlink方法,删除数据以及整个主从数据链接关系)(3,ID) 切断主从数据的链接关系但是不删除这个数据(4,ID) 为id=ID的数据添加主从链接关系。(5) 删除所有的从数据的链接关系就是向所有的从数据调用(3,ID)(6,0,[IDs]) 用IDs里面的记录替换原来的记录(就是先执行(5)再执行循环.原创 2021-04-08 13:51:21 · 622 阅读 · 0 评论 -
odoo 文件附件大小限制
默认一般是不超过25M,所以我们只能通过修改源码来提升。具体代码如下(默认的是 25MB):web/static/src/js/fields/basic_fields.js 中odoo12:1414行原创 2021-04-01 16:18:37 · 923 阅读 · 0 评论 -
odoo tree视图属性
一般属性列表颜色常用判断格式:编辑属性 editableeditable=“bottom”是在行的底部创建2.editable=“top”是在行的顶部创建原创 2021-04-01 09:59:08 · 262 阅读 · 0 评论 -
odoo 自动化属性
在模块安装后,模块中的类会自动添加一些属性,这些属性是 odoo 自动化添加与修改的,主要是用来记录数据创建人与最后修改人。如果不需要创建这些字段可以_log_access = False,默认是 True_auto = False决定是否创建数据库表(默认值为 True)。如果设置为 False,则需要重写 init()函数来创建表。_table = None当_auto 设置成 False 时,该值为创建的表名;默认情况下会自动生成一个。_sequence = None用于字段"ID"的原创 2021-03-31 17:32:21 · 729 阅读 · 0 评论 -
odoo 添加关注者
注意:代码位置 mail/ models/ mail_thread.pypy 发送消息self.message_post(body=’Hi 小红’)带参数self.msg_4 = self.message_post(body='Hi 小红', subtype='mt_comment', parent_id=self.msg_2.id)添加关注者添加关注例 1, self.message_subscribe_users(user_ids=[self.user_id.id])例 2,原创 2021-03-31 17:25:18 · 312 阅读 · 0 评论 -
odoo 警告 warning多种类型
引入命名空间:import odoo.exceptionsimport odoo.osv.osvfrom odoo import models, apifrom odoo.tools.safe_eval import safe_eval常用如下odoo.osv.orm.except_orm,odoo.exceptions.AccessError,odoo.exceptions.ValidationError,odoo.exceptions.MissingError,odoo.except原创 2021-03-31 17:00:29 · 588 阅读 · 0 评论 -
odoo 字段属性
本文对字段属性进行分析记录。属性名称格式用途size设置文本长度 size=16string字段标签 默认取定义 string,否则取字段名,前台可以自定义标签名称translate带翻译的字段 translate = Truetrim去空格 默认值为 True,启动在网络客户端中自动去除周围的空格,trim=Falsehelp帮助文本 鼠标悬停字段向用户显示的提示文本readonly字段只读 readonly=Truerequi原创 2021-03-31 16:12:12 · 685 阅读 · 0 评论 -
odoo 设置新建用户的默认权限、语言及时区
在odoo中,可以给用户设置默认的一些东西(权限、语言、时区及其他),故odoo在用户表里设置了新建用户模板 (Default User Template)具体示例如下:找到用户表,选择无效用户红色的是默认用户的模板,绿色是默认门户的模板。设置默认的权限在这个用户里面,可以这是权限,可默认是都为空。默认语言、时区保存后,当你新建用户时,会按照这个模板来生成默认的对应权限、语言及时区等。...原创 2021-03-31 10:10:41 · 577 阅读 · 0 评论 -
ODOO 恢复数据库报错 Database restore error: Command `psql` not found.
ODOO12 恢复数据库报错:Database restore error: Command psql not found.运行odoo源码的主机上未找到psql命令原因一般情况下是运行odoo源码的主机上未安装数据库另一种情况是安装过数据库但是odoo.conf文件中 pg_path 参数配置错误win环境linux 环境pg_path = /usr/lib/postgresql/10/binmacospg_path = /usr/local/opt/postgresql@原创 2021-03-25 11:52:43 · 2242 阅读 · 0 评论 -
odoo 得到selectioni字段中的值
例:name = fields.Selection([(‘a’, ‘甲’), (‘b’, ‘乙’)], string=‘name’)我们都知道self.name输出的是“a”或者“b”,但是在很多时候我们要获取到“甲”或者“乙”,比如在Report里面输出name的值,此时该怎么办呢?name = dict(self.fields_get(allfields=[‘name’])[‘name’][‘selection’])[self.name]name = dict(self.fields_g原创 2021-03-03 11:23:37 · 518 阅读 · 0 评论 -
odoo 继承给源码视图添加属性
在发票模型里,最近需要给动作里面的 登记付款 菜单添加权限因其在源码里面,故只能通过继承的方式给视图添加权限。 <record id="action_account_invoice_from_list" model="ir.actions.server"> <field name="name">Register Payment</field> <field name="model_id" ref="原创 2021-03-02 17:24:30 · 283 阅读 · 0 评论 -
odoo 重写action视图,调整视图顺序
就是把tree视图放到最前面,默认是tree视图,因其是源码里面的,所以要通过继承的方式来改写这是源码里面的action视图,我们来继承改写他。这是其中一种写法更简洁的写法是这样,直接继承修改 view_mode注意:要重写action视图的,id是不能变的。id=‘原模块名.原视图id’类似最后一种方法。...原创 2021-02-23 14:18:09 · 568 阅读 · 0 评论 -
odoo13 权限仅查看自己
有两种方式可以实现:客户仅查看自己创建的数据直接用权限组用记录规则(ir.rule)来筛选(domain_force) <record id="wg_sale_partner_data_query_self" model="res.groups"> <field name="name">客户资料查询(仅自己)</field> <field name="category_id" ref="modu原创 2021-01-25 16:57:16 · 606 阅读 · 0 评论 -
odoo 日志输出控制
log_level = info控制台输出日志信息log_level = debug_sql控制台输出sql语句原创 2020-12-03 11:04:40 · 733 阅读 · 0 评论 -
odoo tree视图长文本截取部分显示问题
odoo的tree视图字段没有截短长文本功能,当显示长文本时就会很难看。下面提供一种方法可以变通实现该功能。假定有一个较长文本的字段名为:description,我们在model中增加一个字段名为:display_descriptiondisplay_description= fields.Char(string='Description', compute='_compute_display_description')@api.depends('description')@api.onchang原创 2020-12-01 10:13:35 · 597 阅读 · 0 评论 -
odoo 修改创建按钮名称
odoo tree视图的创建按钮自定义效果如下:原创 2020-11-28 10:53:28 · 374 阅读 · 0 评论 -
odoo 按钮不可点击功能
在一个需求里,要把一个按钮做成不可点击的状态类似以下效果此三个按钮不可点击,只是来表示某些情况代码如下: <button string="技术通过" name="action_none" class="oe_highlight" type="object" style="background-color: #e7e7e7; color: black;pointer-events: none;" attrs="{'invisible': [('technical_pass',原创 2020-11-27 20:01:06 · 619 阅读 · 0 评论 -
odoo 人民币汇率对接
前几天做了一个对接odoo 系统的汇率问题先在一个可以获取汇率的网站得到一个汇率聚合数据用的是odoo13企业版的源码写的代码如下# -*- coding: utf-8 -*-import datetime, json, urllibfrom odoo import models, fields, api, _import requests, urllibfrom urllib.parse import urlencodeclass ResCompany(models.Model):原创 2020-11-27 15:42:14 · 275 阅读 · 0 评论 -
odoo 权限摘要
最近在写权限,记录下权限问题如果想要继承原生的,一般都会加到下面来,因为加的这个没有上下级关系单独的组类似这种单独的组是要有单独的 model=“ir.module.category” 的数据,下面的model="res.groups"类别关联上面的就ok类似代码如下:<record model="ir.module.category" id="module_category_wg_production_function"> <field name="name"&g原创 2020-11-23 17:40:44 · 206 阅读 · 0 评论 -
odoo 取消导航栏
在用向导生成数据并跳转到对应的数据这时会有导航栏问题,会有一连串的导航栏类似这样的,比较长的导航栏所以在用向导时,打开时return { 'name': _('从库存中选择'), 'view_mode': 'form', 'res_model': 'product.lot.template', 'type': 'ir.actions.act_window', 'target':原创 2020-11-23 17:11:25 · 347 阅读 · 0 评论 -
odoo 删除自定义模型时,也删除字段
在前面写的功能中,新建模型会在某个模型中新建字段,这样会有很多字段。现在有删除数据时,把此数据创建的字段也删除 def unlink(self): """删除无数据的相应字段""" for rec in self: fields_name = 'x_wg_%s_id' % (rec.model_id.model.replace('.', '_')) if any(line[fields_name] for line i原创 2020-11-10 15:33:01 · 607 阅读 · 0 评论 -
odoo 动态添加字段和视图动态添加字段
在某些情况下,需要动态添加字段A,B,C…,以及动态添加到tree视图显示,因其后面是后面添加的字段故要用xpath来写第一步给模型添加字段例:给 account.move.line 模型动态添加字段model = self.env['ir.model'].search([('model', '=', 'account.move.line')], limit=1) #找到记录account.move.line模型的记录fields_name = 'x_wg_%s_id' % (res.model原创 2020-11-07 12:19:13 · 2002 阅读 · 0 评论 -
odoo 隐藏源码菜单
1.隐藏菜单有时,我们需要把源码里面的菜单去掉,有些源码里面的功能以及菜单就不用显示 <record id="sale.report_sales_team" model="ir.ui.menu"> <field name="active" eval="False"/> </record>解释上面代码:id:模块名.原菜单idmodel:固定的model,表示菜单模型里面的数据field 里面的name: active 为Fal原创 2020-11-07 10:49:50 · 497 阅读 · 0 评论 -
odoo 按钮一个或者多个跳转不同视图
在生产订单里,通过按钮(type=“object”)跳转到技术评审单,有以下区别:当有一条数据时,跳转到form视图-当有多条条数据时,跳转到tree视图(只有此多条数据) def action_view_technical(self): '链接到技术评审单' data = [] self.ensure_one() action = self.env.ref('production_management.production_t原创 2020-10-22 17:36:23 · 441 阅读 · 0 评论 -
odoo 右上角显示提示
右上角提示的js代码self.displayNotification({ title: "提示", message: '请选择要操作的数据!!', type: 'danger', sticky: false});type 有多种类型,提示的样式会根据类型展示不同的样式查到共有,danger,warning,info,success几种danger 样式warninginfosuccess...原创 2020-09-16 21:09:07 · 859 阅读 · 0 评论 -
odoo 中如何获取一个selection字段的值以及显示值
type= fields.Selection([('a', '吃'), ('b', '喝')], string='类型')我们都知道self.type输出的是“a”或者“b”,但是在很多时候我们要获取到“甲”或者“乙”,比如在Report里面输出type的值,此时该怎么办呢?type= dict(self.fields_get(allfields=['type'])['type']['selection'])[self.type]里面的self可根据是否是当前模型来判断。这一行代码就可以轻松实原创 2020-09-15 16:21:33 · 2930 阅读 · 0 评论 -
odoo 验证友好提示
odoo 有种情况是限制上传文件只能是 xlsx, xls, 但是有时候即使是报错了,它的记录还是存在的。此功能即提醒的同时又可制空。 @api.onchange('attachment') def _onchange_attachment(self): if self.attachment: if not self.store_fname.endswith(('xls', 'xlsx')): self.attach原创 2020-09-04 11:39:07 · 557 阅读 · 0 评论 -
odoo 隐藏Many2many 的 “新建” 和One2many 的 “保存并新建” 按钮隐藏
对于Many2many 打开新form视图 隐藏“新建” 按钮,隐藏后的效果<field name="production_line_ids" options="{'no_create': True}"/># options="{'no_create': True}"添加 options="{‘no_create’: True}" 后即可隐藏掉对于One2many 打开新form视图 隐藏“保存并新建” 按钮,隐藏后的效果.modal-footer .btn-.原创 2020-09-02 14:10:55 · 675 阅读 · 0 评论