odoo
jack@london
这个作者很懒,什么都没留下…
展开
-
odoo中创建一个图片字段
首先,需要添加一个images类为其定义必需的字段,并添加manifest, init, security等各种声明# -*- coding: utf-8 -*-from odoo import models, fields, apiclass ImageURL(fields.Field): type = "imagerul" column_type = ('varchar', 'varchar')class Images(models.Model): _n..原创 2022-02-25 13:17:40 · 608 阅读 · 0 评论 -
docker中连接Linux本机安装数据库ip
可以在本机运行 ifconfig,查看eth0中指向的 inet 地址如果该数据库是postgre,则docker中db_mg 的数据库engine可以写作from sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerclass DatabaseManagement(): def __init__(self): self.engine_postgre = create_en原创 2022-01-27 14:41:13 · 3372 阅读 · 0 评论 -
在外部应用中使用接口方式调用Odoo函数
首先,在应用中定义insert2odoo()函数。函数中声明了调用odoo所需的url/db/password等参数,uid=2表示是admin帐户。try语句中,是真正的“使用接口方式”。可以看到包含了odoo中的model名称,被调用函数等。随后在main()中调用了insert2odoo()函数,并赋予了参数。import tracebackfrom xmlrpc import client as xmlrpclibdef insert2odoo(message): u原创 2021-05-14 13:35:04 · 680 阅读 · 0 评论 -
odoo中的自动化执行设置
激活开发者模式后,找到“Technical”菜单,选择下拉栏目“Automation”栏的“Scheduled Actions”可以Create创建一个。也能手动执行。原创 2021-03-26 17:03:08 · 499 阅读 · 0 评论 -
odoo中的分类查询
如果有的对象有种类区分,需要分别进行运算时。可以使用read_group函数。 search_items_domain = [('state', '=', 'running')] # 已running的item running_items = self.items.read_group(search_items_domain, ['code'], ['type']) # 按type 区分 for item in run原创 2021-03-23 13:16:54 · 267 阅读 · 0 评论 -
在odoo的create函数中添加逻辑
odoo的create函数比较特殊,在其中,self并没有被传入进来,需要使用res来代替其它自定义函数中self的功能。 @api.model def create(self, vals): res = super().create(vals) print(res.variable) #而不是self.variable...原创 2021-03-03 16:41:51 · 463 阅读 · 1 评论 -
Odoo中表与表之间通过id建立关联
假设,有一个层级关系为如下这样。-------------------------------------------------申请 —— 申请号 箱子箱子 —— 箱子的单号单子 —— 单号 单可用量 使用量记录使用记录 —— 申请号 单子 (使用人 时间)使用量-------------------------------------------------假设,当前在申请中,需要给申请中的箱子添加单号。并且,要在单子中添加使用记录。则需要这样写: #...原创 2021-02-25 09:31:02 · 434 阅读 · 0 评论 -
odoo中关联类更新主类字段值
odoo中可以对多个表分开管理,有时候也需要自动更新某字段(非直接关联)的值。比如这个例子。有两张表:产品型号,该产品的检验报告。那么,可以在create()函数添加逻辑,当更新产品检验报告中的有效期时,附带更新产品型号中的可用期字段值。产品型号class Productmodel(models.Model): reports = fields.One2many('product.report', 'productcode', string='检验报告', rea..原创 2021-02-25 08:30:04 · 274 阅读 · 0 评论 -
odoo中添加临时向导页面
odoo中往往需要添加一个临时的页面(非model),做法在此:https://blog.csdn.net/figosoar/article/details/108600559但在该页面中进行业务操作时,需要从model的页面中获取数据。这就需要将model的某个Form表单id传过来。首先,在当前临时页面中定义变量,将Form表单的id关联过来。pack_ids = fields.Many2many('project.model', string='选择表单id')或pack_id...原创 2021-02-09 10:08:21 · 215 阅读 · 0 评论 -
为odoo表单设置序号自加
假设项目名称为project,表单所在的model名称为test,所需设置的序号为num。在test.py中添加函数 @api.model def _create_sequence(self, vals): vals['num'] = self.env['ir.sequence'].next_by_code( 'project.test')# or '/' return vals @api.model def原创 2021-02-04 15:20:11 · 965 阅读 · 0 评论 -
Python中取某日期之前或之后的某一天
Python中通常需要进行日期比较,取当日之前或之后的某一天,可以使用timedelta来进行运算。以在odoo中为例,代码如下。from datetime import timedeltapkgdetail_ids = self.env['project.module'].search( [('someday', '<', self.localdate + timedelta(days=deltadays_num))]) deltadays_num 可以为其原创 2021-01-29 16:34:14 · 1265 阅读 · 0 评论 -
odoo数据库的备份和恢复
备份采取postgre的sql转储方式,主要依靠两条命令pg_dump –h 127.0.0.1 -p 5432 -U odoo -c -C –f dbname.sql dbnamepsql -h 127.0.0.1 -p 5432 -U odoo -f odoo12.sql参见:Postgresql的三种备份方式https://blog.csdn.net/international24/article/details/82689136备份和恢复https://ww..原创 2021-01-27 16:35:34 · 1239 阅读 · 1 评论 -
怎样在odoo中添加一个模块
在odoo中添加一个模块,一共需要更新7个地方。如果添加完模块,并没有生效,可以到这些地方查看,分别是:models/py文件 models/__init__.py文件 views/xml文件 views/menus.xml文件 views/actions.xml文件 security/ir.model.access.csv文件 __manifest__.py文件...原创 2021-01-22 13:52:52 · 741 阅读 · 0 评论 -
使用 Docker 容器安装 Odoo
要使用 Docker运行 Odoo,需要两个容器,一个运行 PostgreSQL 数据库,一个运行 Odoo 服务。安装通过命令行窗口完成,安装 PostgreSQL 容器docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10此时便会从互联网上下载最新的 PostgreSQL 镜像,并在后台开启一个容器来进行运行。接下来安装 Odo原创 2021-01-05 08:31:19 · 2533 阅读 · 0 评论 -
odoo中对tree(list)的修饰
decoration-样式名 样式可为bf加粗, it斜体 或 其他bootstrap样式如:danger红色, info, muted, primary, success绿色,warning橙色等等,值为python表达式,对每条记录执行相应表达式判断,当结果为true的时候将对应的样式应用。参见:https://www.cnblogs.com/ygj0930/p/10826414.html...原创 2020-09-27 17:32:48 · 412 阅读 · 0 评论 -
odoo 中的抛出异常
1:用于向用户显示警告信息。首先,要导入 Odoo API库,添加对应的 import 及 Odoo Warning异常。这需要编辑.py文件修改前两行:from odoo import api, fields, modelsfrom odoo.exceptions import Warning其次,可以在button的函数响应中调用它。 @api.multi def button_send(self): self.ensure_one() .原创 2020-09-18 17:11:20 · 1457 阅读 · 0 评论 -
odoo实现import excel文件并读取其中内容功能
首先,在临时表页面的xml文件中添加import按钮 <group > <field name="file" /> <newline/> <button name="read_file" string="读取文件内容" type="object" class="oe_hig...原创 2020-09-17 10:40:47 · 1839 阅读 · 1 评论 -
odoo 创建向导wizard页面
首先在wizards下创建 aa.py 和 aa_view.xml文件,在manifest.xml中声明该xml文件其次,要在views/actions.xml中添加对该页面的的定义 <record id="packtopo_blcode_import_pack_action" model="ir.actions.act_window"> <field name="name">导入Pack串</field> ...原创 2020-09-17 09:51:15 · 871 阅读 · 0 评论 -
odoo中涉及Python datetime和timedelta的时间计算
odoo中使用datetime和timedelta对时间和时间间隔进行计算。具体工作代码语句可以添加在函数中。 @api.multi def button_process(self): # 确认测试开始 self.write({'state': 'onprocess'}) # ---- # tomsg self._create_msg(self.id, '测试开始确认') self.actstart = field.原创 2020-08-31 16:57:49 · 948 阅读 · 0 评论 -
odoo12 开发环境搭建中的一些坑
为odoo新添加自定义模块addones时,会遇到werkzeug问题,提示缺少module,比如werkzeug.contribute或者wrappers等原因:werkzeug版本不对解决办法:替换werkzeug版本1:首先查看werkzeug版本 pip show wekzeug如果是1.0.0,则需要卸载该版本werkzeug2:卸载1.0.0版本werkzeugpip uninstall werkzeug3:安装0.15.5版本werkzeugpip...原创 2020-07-25 08:36:24 · 795 阅读 · 0 评论