CData Python Connector for Odoo

Build 24.0.8963

Querying Data

After you use the steps in Connecting to connect, and use one of the methods in Reflecting Metadata to reflect some of the metadata, you can use a session object to query data.

Querying Data Using the Query Method

If the mapping class has been prepared, use it with a session object to query the data source. After binding the engine to the session, provide the mapping class to the session's query method.

For example:

engine = create_engine("odoo:///?User=MyUser;APIToken=MyToken;URL=http://MyOdooSite/;Database=MyDatabase")
factory = sessionmaker(bind=engine)
session = factory()
for instance in session.query(res_users).filter_by(company_name="Company Inc."):
	print("id: ", instance.id)
	print("name: ", instance.name)
	print("email: ", instance.email)
	print("---------")

Querying Data Using the Execute Method

The session object can also run the query with the execute() method alongside the appropriate Table object. Assuming you have an active session, the following is just as viable:
res_users_table = res_users.metadata.tables["res_users"]
for instance in session.execute(res_users_table.select().where(res_users_table.c.company_name == "Company Inc.")):
	print("Id: ", instance.Id)
	print("FullName: ", instance.Name)
	print("City: ", instance.BillingCity)
	print("---------")

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.8963