1

我正在尝试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模型中获取数据。

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

4

1 回答 1

0

是的,您可以使用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 ... "
于 2014-12-03T16:48:40.520 回答