Struct Execute

Source
pub struct Execute {
    pub database: String,
    pub uid: OdooId,
    pub password: String,
    pub model: String,
    pub method: String,
    pub args: Vec<Value>,
}
Expand description

Call a business-logic method on an Odoo model (positional args)

This method allows you to call an arbitrary Odoo method (e.g. read or create or my_function), passing some arbitrary data, and returns the result of that method call.

Note that the way this method handles keyword argument is unintuitive. If you need to send kwargs to an Odoo method, you should use ExecuteKw instead

§Example

use odoo_api::jvec;

// read `id` and `login` from users id=1,2,3
client.execute(
    "res.users",
    "read",
    jvec![
        [1, 2, 3],
        ["id", "login"]
    ]
).send()?;

§Arguments

§method

The method field indicates the Python function to be called. This can be any non-private method. Methods starting with an underscore (e.g. _onchange_name) are considered to be “private”.

§args

The arguments are passed to Python as object.method_name(*args), so kwargs are technically supported here.

For example, consider the Python function

def search_read(domain, fields=None):
    pass

Our args field should be structured like:

let args = jvec![
    // element #1 goes to `domain`
    [
        ["name", "!=", "admin"],
    ],

    // element #2 goes to `fields`
    ["id", "login"]
];

Also note that many Odoo methods accept self as the first param. In that case, you should pass a list of IDs as the first element.

See: odoo/service/model.py

Fields§

§database: String

The database name (auto-filled by OdooClient)

§uid: OdooId

The user id (auto-filled by OdooClient)

§password: String

The user password (auto-filled by OdooClient)

§model: String

The model name

§method: String

The method name

§args: Vec<Value>

The method arguments

Trait Implementations§

Source§

impl Debug for Execute

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl JsonRpcParams for Execute

Source§

impl OdooApiMethod for Execute

Source§

fn describe(&self) -> (&'static str, &'static str)

Describe the JSON-RPC service and method for this type
Source§

fn endpoint(&self) -> &'static str

Describe method endpoint (e.g., “/web/session/authenticate”)
Source§

fn _build(self, id: JsonRpcId) -> JsonRpcRequest<Self>

Build self into a full JsonRpcRequest
Source§

impl Serialize for Execute

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,