Skip to main content

A simple wrapper for more easily running Odoo RPC commands.

Project description

Odoo XMLRPC Helper Functions

A small set of wrapper functions for facilitating CRUD operations in Odoo via XMLRPC.

Getting Started

Installing via pip

pip install odoo_rpc_helper

A Simple Connection

from odoo_rpc_helper import OdooRPCHelper

DB = "test"  # Set this to your database name
USERNAME = "admin"  # Set this to a real username on the DB
PASSWORD = "admin"  # Set this to the password for user above
URL = "http://localhost:8069"  # Set this to the server URL

odoo = OdooRPCHelper(DB, USERNAME, PASSWORD, URL)

partner_id = odoo.create("res.partner", {"name": "Test Partner"})[0]
odoo.write("res.partner", [partner_id], {"phone": "+1 (123) 456-7890"})
partner = odoo.search_read(
  "res.partner",
  [['id', '=', partner_id]],
  ['name', 'phone']
)[0]
print(f"We have a partner with ID {partner['id']} named {partner['name']} "
      f" with phone {partner['phone']}")
odoo.unlink("res.partner", [partner_id])

OdooRPCHelper Class

A class to help with various CRUD operations on an Odoo database via XMLRPC.

Methods

init

__init__(self, database: str, username: str, password: str, url: str = 'http://localhost:8069') Initialize the helper and authenticate with the Odoo server.

  • Parameters:
    • database: The name of the Odoo database to access
    • username: The username of the user to execute XMLRPC requests as
    • password: The password of the user to execute XMLRPC requests as
    • url: The URL of the Odoo server

execute_kw

execute_kw(self) Wrapper around self.models.execute_kw, to save effort on rewriting arguments. Simply omit the database, uid, and password arguments as they will be populated from instance variables.

create

create(self, model: str, fields: Dict) Wrapper for execute_kw create. Create a single record.

  • Parameters:
    • model: The model of which to create a record.
    • fields: The fields to assign during creation.
  • Return: The ID of the created record.

create_multi

create_multi(self, model: str, fields_list: List[Dict]) Wrapper for execute_kw create. Create one or more records. Exactly like calling model.create with a list of dicts in Odoo.

  • Parameters:
    • model: The model of which to create a record.
    • fields_list: The list of dictionaries of fields to assign.
  • Return: The ID(s) of the created record(s).

search

search(self, model: str, domain: List) Wrapper for execute_kw search on a model.

  • Parameters:
    • model: The Odoo model to search.
    • domain: The regular Odoo-style domain. This function wraps it for the XMLRPC call.
  • Return: The list of record IDs found in the search.

search_read

search_read(self, model: str, domain: List, fields: List[str] = None) Wrapper for execute_kw search_read on a model.

  • Parameters:
    • model: The Odoo model to search.
    • domain: The regular Odoo-style domain.
    • fields: The fields to be loaded. All fields loaded by default.
  • Return: A list of dictionaries containing the loaded record fields.

read

read(self, model: str, res_ids: List[int], fields: List[str]) Wrapper for calling read on a model.

  • Parameters:
    • model: The Odoo model to browse.
    • res_ids: The IDs of the records to browse.
    • fields: The fields to be read.
  • Return: List of dictionaries with the requested fields.

write

write(self, model: str, res_ids: List[int], fields: Dict) Wrapper for calling write on a model.

  • Parameters:
    • model: Model to write to.
    • res_ids: Record IDs to write to.
    • fields: Fields to write.

unlink

unlink(self, model: str, res_ids: List[int]) Wrapper for calling unlink on a model.

  • Parameters:
    • model: Model to call unlink on.
    • res_ids: Record IDs to unlink.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odoo_rpc_helper-0.0.7.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

odoo_rpc_helper-0.0.7-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file odoo_rpc_helper-0.0.7.tar.gz.

File metadata

  • Download URL: odoo_rpc_helper-0.0.7.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.9

File hashes

Hashes for odoo_rpc_helper-0.0.7.tar.gz
Algorithm Hash digest
SHA256 847f0e6fec7a256c594d222828ba882920e7c170d7e0430b0254eabd01cef8a7
MD5 cceac6bbb11afabde8bf6ec46afac3cc
BLAKE2b-256 464ea93d786c844bedb43f1a620e8a3595d158d0320475a55e881c72a8e92d34

See more details on using hashes here.

File details

Details for the file odoo_rpc_helper-0.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for odoo_rpc_helper-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 eb782293a05ec9c45664c436a6e402aacb2b3ca560a36efb38f68fec612e7912
MD5 24736dd4dba81e3e87f4fe6c1ddc5d31
BLAKE2b-256 9ea9fe7b5ffe5a7d6977544efdfc6055f44eb0c9a63c1d07c55255df1082eb6a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page