Generic CRUD¶
GenericNamespace for generic model operations that work with any Odoo model, accessed as client.generic.
generic
¶
Generic Odoo model operations.
GenericNamespace
¶
GenericNamespace(client: OdooClient)
Generic model operations for any Odoo model.
Source code in src/vodoo/generic.py
create
¶
Create a new record.
| PARAMETER | DESCRIPTION |
|---|---|
model
|
Model name (e.g., 'product.template')
TYPE:
|
values
|
Dictionary of field values
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
int
|
ID of created record |
Examples:
Source code in src/vodoo/generic.py
update
¶
Update a record.
| PARAMETER | DESCRIPTION |
|---|---|
model
|
Model name
TYPE:
|
record_id
|
Record ID
TYPE:
|
values
|
Dictionary of field values to update
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
bool
|
True if successful |
Examples:
Source code in src/vodoo/generic.py
delete
¶
Delete a record.
| PARAMETER | DESCRIPTION |
|---|---|
model
|
Model name
TYPE:
|
record_id
|
Record ID
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
bool
|
True if successful |
Examples:
Source code in src/vodoo/generic.py
search
¶
search(model: str, domain: list[Any] | None = None, fields: list[str] | None = None, limit: int | None = None, offset: int = 0, order: str | None = None) -> list[dict[str, Any]]
Search and read records.
| PARAMETER | DESCRIPTION |
|---|---|
model
|
Model name
TYPE:
|
domain
|
Search domain
TYPE:
|
fields
|
Fields to fetch
TYPE:
|
limit
|
Maximum number of records
TYPE:
|
offset
|
Number of records to skip
TYPE:
|
order
|
Sort order
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
list[dict[str, Any]]
|
List of record dictionaries |
Examples:
Source code in src/vodoo/generic.py
call
¶
call(model: str, method: str, args: list[Any] | None = None, kwargs: dict[str, Any] | None = None) -> Any
Call a custom method on a model.
| PARAMETER | DESCRIPTION |
|---|---|
model
|
Model name
TYPE:
|
method
|
Method name
TYPE:
|
args
|
Positional arguments
TYPE:
|
kwargs
|
Keyword arguments
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
Any
|
Method result |
Examples: