Python 3.x 使用XML-RPC创建应用程序的ODOOAPI

Python 3.x 使用XML-RPC创建应用程序的ODOOAPI,python-3.x,api,mobile,odoo,xml-rpc,Python 3.x,Api,Mobile,Odoo,Xml Rpc,我想使用API xml rpc在odoo 11中创建雇主休假(休假),以便稍后将其与我的移动应用程序连接,但仍然出现错误。我试图更改这些字段,因为它们出现在odoo中的叶子模块中: 说明、假期类型、开始日期、开始日期、雇主id 代码如下: import xmlrpc.client import datetime class Odoo(): def __init__(self): self.DATA = "aziz" # db name self.USER = "admin"

我想使用API xml rpc在odoo 11中创建雇主休假(休假),以便稍后将其与我的移动应用程序连接,但仍然出现错误。我试图更改这些字段,因为它们出现在odoo中的叶子模块中:

说明、假期类型、开始日期、开始日期、雇主id

代码如下:

import xmlrpc.client
import datetime

class Odoo():
def __init__(self):

    self.DATA = "aziz" # db name
    self.USER = "admin" # email address
    self.PASS = "admin" # password
    self.PORT = "8069" # port
    self.URL  = "http://127.0.0.1" # base url
    self.URL_COMMON = "{}:{}/xmlrpc/2/common".format(
        self.URL, self.PORT)
    self.URL_OBJECT = "{}:{}/xmlrpc/2/object".format(
        self.URL, self.PORT)

def authenticateOdoo(self):
    self.ODOO_COMMON = xmlrpc.client.ServerProxy(self.URL_COMMON)
    self.ODOO_OBJECT = xmlrpc.client.ServerProxy(self.URL_OBJECT)
    self.UID = self.ODOO_COMMON.authenticate(
        self.DATA
        , self.USER
        , self.PASS
        , {})
def partnerAdd(self, partnerRow):
    partner_id = self.ODOO_OBJECT.execute_kw(
        self.DATA
        , self.UID
        , self.PASS
        , 'hr.holidays'
        , 'create'
        , partnerRow)
    return partner_id






def main():
od = Odoo()
od.authenticateOdoo()

# Examples:

# CREATE
partner_row = [{"name":"salami"
                    , "hr_holidays_status":"4"
                    , "date_from":"08/13/2018 12:45:30"
                    , "date_to":"08/17/2018 20:49:26"
                    , "employee_id":"1"}]
od.partnerAdd(partner_row)







if __name__ == '__main__':
main()
运行代码时出现以下错误:

xmlrpc.client.Fault: <Fault 4: '("Database fetch misses ids ((\'1\',)) and     has extra ids ((1,)), may be caused by a type incoherence in a previous request", None)'>
xmlrpc.client.Fault:
试试这个(去掉方括号):


最后,这段代码与我一起工作,一切都很好,但错误在于我如何在这里插入数据

def main():

    od = Odoo()
    od.authenticateOdoo()

    # Examples:

    # CREATE
    partner_row = [{"name":"holyeid"
                        , "holiday_status_id":int(1)
                        , "date_from":"2018-08-14 16:35:38"
                        , "date_to":"2018-08-16 16:35:38"
                        , "employee_id":int(1)
                        , 
                        }]


    od.partnerAdd(partner_row)



if __name__ == '__main__':
    main()
def main():

    od = Odoo()
    od.authenticateOdoo()

    # Examples:

    # CREATE
    partner_row = [{"name":"holyeid"
                        , "holiday_status_id":int(1)
                        , "date_from":"2018-08-14 16:35:38"
                        , "date_to":"2018-08-16 16:35:38"
                        , "employee_id":int(1)
                        , 
                        }]


    od.partnerAdd(partner_row)



if __name__ == '__main__':
    main()