当使用 CookComputing (XML-RPC.net) 尝试仅使用一个条件搜索 mail.notification 模型时,这相当简单,因为您只需调用:
object[] args = new object[1];
object[] subargs = new object[3];
subargs[0] = "partner_id";
subargs[1] = "=";
subargs[2] = partner_id.ToString();
int[] message_count = odooNewProxy.Search(database, userId, odoo_password, "mail.notification", "search", args);
其中搜索定义如下:
[XmlRpcMethod("execute")]
int[] Search(string dbName, int userId, string pwd, string model, string method, object[] filters);
你会立即得到结果。当您想要调用两个或多个条件搜索时,真正的问题就出现了 - 例如[('partner_id', '=', 3), ('is_read', '=', False)]
。有人对此有任何线索吗?我尝试传递一个包含两个对象的单个对象(一个带有partner_id,一个带有is_read)——这会起作用,但Odoo也将其视为3个对象域,在[]中添加partner_id。尝试使用字符串,尝试使用一个带有 6 个子参数的对象 - 似乎没有任何效果。任何帮助将不胜感激。