如何编写使用OpenERP ORM直接上传到Postgres数据库的Python脚本

2024-02-20

我需要在 Python 中编写一个“独立”脚本,仅使用 OpenERP 的 ORM 模块将销售税上传到数据库中的 account_tax 表。我想做的是类似下面的伪代码。

有人可以向我提供有关以下内容的更多详细信息: 1)我需要设置什么sys.path 2)在导入“account”模块之前我需要导入哪些模块。目前,当我导入“account”模块时,出现以下错误: AssertionError:报告“report.custom”已存在! 3)获取数据库游标的正确方法是什么。在下面的代码中,我只是直接调用 psycopg2 来获取光标。

如果这种方法不起作用,除了编写 XML 文件来从 OpenERP 应用程序本身加载数据之外,任何人都可以建议一种替代方法。此过程需要在标准 OpenERP 应用程序之外运行。

伪代码:

import sys
# set Python paths to access openerp modules
sys.path.append("./openerp")
sys.path.append("./openerp/addons")

# import OpenERP 
import openerp

# import the account addon modules that contains the tables 
# to be populated.
import account

# define connection string
conn_string2 = "dbname='test2' user='xyz' password='password'"

# get a db connection
conn = psycopg2.connect(conn_string2)

# conn.cursor() will return a cursor object
cursor = conn.cursor()

# and finally use the ORM to insert data into table.

如果您想通过网络服务来完成,请查看OpenERP XML-RPC Web 服务 http://doc.openerp.com/v6.0/developer/6_22_XML-RPC_web_services/index.html

与 OpenERP Web 服务配合使用的示例代码:

import xmlrpclib

username = 'admin' #the user
pwd = 'admin'      #the password of the user
dbname = 'test'    #the database

# OpenERP Common login Service proxy object 
sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
uid = sock_common.login(dbname, username, pwd)

#replace localhost with the address of the server
# OpenERP Object manipulation service 
sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object')

partner = {
   'name': 'Fabien Pinckaers',
   'lang': 'fr_FR',
}
#calling remote ORM create method to create a record 
partner_id = sock.execute(dbname, uid, pwd, 'res.partner', 'create', partner)

更清楚的是,您还可以使用OpenERP 客户端库 http://pypi.python.org/pypi/openerp-client-lib/1.0.3带有客户端库的示例代码:

import openerplib

connection = openerplib.get_connection(hostname="localhost", database="test", \
    login="admin", password="admin")
user_model = connection.get_model("res.users")
ids = user_model.search([("login", "=", "admin")])
user_info = user_model.read(ids[0], ["name"])
print user_info["name"]

您会看到两种方式都很好,但是当您使用客户端库时,代码更少且易于理解,而使用 xmlrpc 代理是您将处理的较低级别的调用 希望对你有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何编写使用OpenERP ORM直接上传到Postgres数据库的Python脚本 的相关文章

  • 字段只读和组属性

    我希望在 Openerp 6 1 视图中将字段设置为只读 我希望该字段对于除特定组之外的所有组都是只读的 假设经理应该能够编辑它 而其他人应该只能查看 我不清楚如何在视图中做到这一点 请建议 谢谢 你只需创建一个功能域 http doc o
  • 在 odoo 10 中向状态栏添加颜色

    需要在odoo10中的状态栏添加颜色 哪些可用的openerp版本 例如
  • 如何在 debian 64 位上正确安装 wkhtmltopdf?

    我正在尝试安装 wkhtmltopdf 但是当我这样做时 sudo dpkg i wkhtmltox 0 12 1 linux trusty amd64 deb I get Preparing to unpack wkhtmltox 0 1
  • 在 odoo 中添加 Many2many 字段后“关系已存在”

    我定义了以下两个 odoo ORM 模型 class Weekday models Model name ludwik offers weekday name fields Char class Duration models Model
  • 跟踪代码中某个点的所有语句

    我正在尝试跟踪复杂的 Python 应用程序 OpenERP 中的调用和代码流 更复杂的是 OpenERP 有自己的继承系统 与普通的 Python 继承并行 我想做的是获得执行代码的完整列表 以及模块 函数名称 我尝试过 Eclipse
  • 达到虚拟实时时间限制(178/120秒)

    我使用的是ubuntu 16版本并运行Odoo erp系统12 0版本 在我的应用程序日志文件中 我看到信息显示 已达到虚拟实时时间限制 178 120 秒 它到底意味着什么以及它会对我的应用程序造成什么损害 另外我如何增加虚拟实时限制 它
  • 总和时间 odoo 9

    当在树视图中使用计算时 总和不可见 当使用 onChange sum 时 任何解决方案都可见如何修复它 我需要在从 csv 插入数据后自动填充 time total 字段进行计算 例子 Source class my data models
  • 如何覆盖odoo new api中字段的默认函数

    我有一个调用函数来获取默认值的字段 在模块project forecast中 def default user id self return self env user if default user id not in self env
  • 在 odoo 中安装 woocommerce 连接器

    我想连接 woocommerce 和 odoo 我在 Odoo 中安装 woocommmerce 连接器时遇到问题 我从那里得到了 woocommerce 连接器https github com OCA connector woocomme
  • 更改上传的二进制文件字段的文件名

    我在用着Odoo8 我有一个问题我用过fields binary在 Odoo 中上传文件 但是当我尝试下载它时filename上传文件的内容是型号名称 是否可以更改filename文件的 其次 字段中的过滤器属性不起作用 我对这个问题的解决
  • 在树视图 Odoo 13 外部添加按钮

    再会 有没有办法在 Odoo 的树视图上方添加一个按钮 我想每当用户单击按钮时运行一个函数 如果这不可能 你能帮我找到替代方案吗 这是我查看的代码
  • 使用 TransientModel 设置和获取 Odoo 存储数据

    我正在尝试在 odoo 中存储配置数据 我需要存储 3 个对 account journal 的引用 模型是在数据库中创建的 视图显示在配置基本菜单中 当我按下 应用 按钮时 数据存储在数据库中 但当我重新加载菜单时 数据不会显示 代码使用
  • Odoo 14:在树视图中添加部分功能

    I need add a section functionality like sales gt quotation view has in one of my tree views 我的代码view是这样的
  • 在 OpenErp 中创建功能字段

    如何在 OpenERP 中创建功能字段 看来我需要在 python 中创建函数 然后用 XML 调用它 我看到需要编辑的 XML 但是 python 代码放在哪个文件中 py文件的代码 class some model osv osv na
  • NotImplementedError:frozendict 不支持“更新” - Odoo v8

    我的 Odoo v8 模块上有以下代码 api multi def button generate wh doc self context self context partner self env res partner res for
  • setFont(Times-Roman) 不能缺少 T1 文件吗?

    我有错误 Can t find pfb for face Times Roman Error reportlab graphics renderPM RenderPMError Can t setFont Times Roman missi
  • 从外部 php 系统登录 Odoo

    我有一个要求 我需要从外部 php 系统重定向到 Odoo 并且用户也应该登录 我想到了以下两种方法来完成此任务 来自 php 端的 url 重定向 它调用特定的控制器 并沿着 url 传递凭据 由于显而易见的原因 这不是一个安全的选项 从
  • 导入错误:没有名为 psycopg2 的模块

    在 OpenERP 6 的安装过程中 我想使用以下命令生成一个配置文件 cd home openerp openerp server bin openerp server py s stop after init c home opener
  • 何时在 odoo 中使用 api.one 和 api.multi |打开程序?

    最近odoo 以前的OpenERP V8已经发布了 在新的 API 方法中引入了装饰器 在models py方法需要修饰 api one or api multi 参考odoo 文档 https www odoo com documenta
  • 无法在 odoo 10 Windows 中执行命令 lessc

    我想问一下在windows上安装odoo 10的问题 我有这样的错误 无法执行命令 lessc 我在另一篇文章中看到过这个问题 但他们的文章只是讨论 mac 和 ubuntu 服务器 而不是在 Windows 中 任何人都可以帮我解决这个

随机推荐

  • Python数据结构的内存大小

    如何找到Python数据结构的内存大小 我正在寻找类似的东西 sizeof 1 hello 2 world 如果它能递归地计算每件事 那就太好了 但即使是基本的非递归结果也有帮助 基本上我想了解各种实现选项 例如元组与元组 列表对比类在内存
  • Youtube IFrame API 来源不受信任

    正如标题所示 我正在使用 IFrame API 我一直在遵循指南API参考 https developers google com youtube iframe api reference 它对我有用 但我发现出现了一些警告并希望解决它们
  • 仅使外部白色透明

    我正在使用 imagick 和 php 来修改上传的图像 我想去除图像周围的白色 使其具有透明背景 使用这个 val 65535 15 val intval val 1 divide by 1 means accept full fuzz
  • 如何从oracle表的多个分区中选择数据

    我正在尝试从分区表中的多个分区中选择数据 它适用于单个分区 select from table partition ParititonName 但不能选择多个分区 select from table partitions Part1 par
  • 添加自定义转换类型以进行字符串格式化

    python 中是否有向字符串格式添加额外的转换类型 使用的标准转换类型 基于字符串的格式化是这样的s对于字符串 d我想要做的是添加一个新字符 我可以为其指定一个自定义处理程序 例如 lambda 函数 该处理程序将返回要插入的字符串 例如
  • 在 C# 中将列表设置为只读

    我有这个示例代码 我想要做的是使 Nums 值只能使用 AddNum 方法写入 namespace ConsoleApplication1 public class Person string myName N A int myAge 0
  • ExecutorService 超时但不阻塞主线程

    我想在有时间限制的后台执行一些工作 问题是 我不想阻塞主线程 简单的实现是有两个执行器服务 一个负责安排 超时 第二个负责完成工作 final ExecutorService backgroundExecutor Executors new
  • F# 如何捕获所有异常

    我知道如何捕获特定异常 如下例所示 let test zip archive candidate zip archive let rc try ZipFile Open candidate zip archive ToString ZipA
  • Laravel 5.8 中 Auth::user() 返回 null

    我的 Laravel 5 8 10 项目中遇到身份验证问题 我没有使用 Laravel 创建的默认表单进行身份验证 当我在浏览器中访问 URL 仪表板时 通常用户会在登录时获得重定向 无论如何 应用程序允许它 另外当我使用时Auth use
  • TYPE_E_CANTLOADLIBRARY 仅当在 Windows 2003 x64 上的单独线程上使用 COM 对象时

    我有一个访问 COM 对象的 Windows 窗体应用程序 编译为 x86 它给了我以下错误 only在 Windows 2003 x64 上 当代码在单独的线程上运行时 创建 IDoc 期间出现异常 无法将类型 PTISG COM Tek
  • 修复 ARC 中潜在的内存泄漏

    以下单例类 SharedManager 辅助方法可能会导致保留周期 在静态分析器中收到警告 在行分配的对象的潜在泄漏 我该如何修复 我确实尝试使 ivar uuid weak 但在分析时仍然出现警告 NSString weak uuid b
  • std::numeric_limits::epsilon() 可以用来做什么?

    unsigned int updateStandardStopping unsigned int numInliers unsigned int totPoints unsigned int sampleSize double max hy
  • 有没有办法阻止 contentEditable 元素在光标到达底部时滚动?

    例如 我有一个 contentEditable div 我可以在其中输入内容 当文本到达 div 底部时 浏览器会自动滚动 div 以便文本末尾和光标仍然可见 如何防止 div 滚动 以便输入的文本超出 div 的底部 从而在键入时不再看到
  • 将二维 ArrayList 复制为新的

    所以我遇到的问题是在复制二维数组列表后 更改一个二维数组列表中的元素会影响另一个二维数组列表 我希望它们在内存中完全分开 第一个示例展示了它如何正确处理一维数组列表 import java util ArrayList public cla
  • 正则表达式匹配以测试有效年份

    给定一个值 我想验证它以检查它是否是有效的年份 我的标准很简单 其中值应该是整数4人物 我知道这不是最好的解决方案 因为几年前它不允许1000并将允许诸如5000 这个标准足以满足我当前的情况 我想出的是 d 4 虽然这有效 但它也允许负值
  • 性能:使用 JCIF 将文件复制到 Windows 网络的速度非常慢

    我正在尝试将文件从本地计算机复制到 Windows 服务器中的共享文件夹 这是我使用的功能 public static void copyFileUsingJcifs final String domain final String use
  • 如何将新工具箱添加到已安装的 Matlab 版本中?

    我需要向我的 Matlab Student 版本添加一个工具箱 我知道我必须下载工具箱文件 将它们放在某个目录中 然后指定路径 但是 我不太确定必须将文件放在哪里 我下载了两个 zip 存档 Symbolic Math Toolbox Co
  • 如何在 MMT 中粘合/识别两个结构中的内含物?

    我想形式化形式语言及其语义MMT https uniformal github io 并定义一个一般概念语义等价两种语义 one句法 准确地说 对后者进行编码实际上是一种识别 粘合 我不知道如何在 MMT 中做到这一点 接下来让我详细说明我
  • IE6 将 DOCTYPE 更改为错误的 DOCTYPE

    我正在使用定义了以下内容的网站DOCTYPE 当我访问该网站时IE6 DOCTYPE神奇地变成了 而且 好吧 它可以保留 因为一切看起来都很好 但这是重点 只有一页有DOCTYPE变成
  • 如何编写使用OpenERP ORM直接上传到Postgres数据库的Python脚本

    我需要在 Python 中编写一个 独立 脚本 仅使用 OpenERP 的 ORM 模块将销售税上传到数据库中的 account tax 表 我想做的是类似下面的伪代码 有人可以向我提供有关以下内容的更多详细信息 1 我需要设置什么sys