如何通过openerplib或xmlrpclib调用OpenERP类的函数?

2024-10-02 12:24:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从控制器调用类res.partner中声明的函数。这个控制器是“外部”的,所以我必须使用openerplibxmlrpclib也是有效的)来从模型中获取数据。在

例如:

connection = openerplib.get_connection (hostname="localhost", database="my_db", login="admin", password="my_pwd", port=8069)     
res_partner_model = connection.get_model("res.partner")

现在我有了模型,我可以使用searchreadsearch_read方法从res.partner模型中获取数据。在

但是,如何调用在该类中声明的函数?有可能吗?在


Tags: 函数模型声明readsearchpartnergetmodel
1条回答
网友
1楼 · 发布于 2024-10-02 12:24:58

是的,您可以使用xmlrpclib调用函数。

试试这个

import xmlrpclib

#dbname = "my_db"
#username = "admin"
#pwd = "my_pwd"

sock_common = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/common')
#uid = sock_common.login(dbname, username, pwd)
uid = sock_common.login("my_db", "admin", "my_pwd")
sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object')

#this will search all ids of res_partner class
partner_ids = sock.execute(dbname, uid, pwd, 'res.partner', 'search',[])

for partner_id in partner_ids:
    #res = sock.execute(dbname, uid, pwd, 'res.partner', 'your_function_name', [partner_id])
    res = sock.execute("my_db", uid, "my_pwd", 'res.partner', 'your_function_name', [partner_id])
    print '\n====res=====',res

print " Ending Query ... "

相关问题 更多 >

    热门问题