python - 数据库获取丢失了 ids (u'1') 并且有额外的 ids (1),可能是由于先前请求中的类型不一致引起的

Nor*_*One 4 android odoo-mobile odoo-10

我正在 odoo 10 的 crm 模块上制作一个 android 应用程序,我想通过我的应用程序在 odoo 中创建报价,我将这些不同的参数传递给ORecordValues并在之后调用createRecord()。所以当我单击“保存”按钮时,我正在调用python api 和 python api 给了我这个错误。

Database fetch misses ids (u'1') and has extra ids (1), may be caused by a type incoherence in a previous request

这是我在 odoo 中插入记录的代码。

 ORecordValues values = new ORecordValues();
  values.put("partner_id",resPartnerArrayList.get(idc).get_id());//parter id
  values.put("date_order", binding.qOrderDate.getText().toString());
  if(!expDate.isEmpty())
  {
       values.put("validity_date",
       binding.qExpirationDate.getText().toString());
  }
  if(!paymentTerms.isEmpty())
  {
     values.put("payment_term_id",paymentTermArrayList.get(idP).get_id());//payment term id
  } 
  if(!binding.qUntaxedAmount.getText().toString().isEmpty())
  {
    values.put("amount_untaxed",binding.qUntaxedAmount.getText().toString());
  }
  if(!binding.qTotal.getText().toString().isEmpty())
  {
      values.put("amount_total", binding.qTotal.getText().toString());
  }
  if(!binding.qTaxes.getText().toString().isEmpty())
  {
      values.put("amount_tax", binding.qTaxes.getText().toString());
  }

  return odoo.createRecord("sale.order", values);
Run Code Online (Sandbox Code Playgroud)

Kbi*_*biR 6

我认为您试图将 unicode 值传递给Many2one字段。执行类型转换。我认为就你的情况而言payment_term_id

希望它能帮助你。


Nor*_*One 5

我找到了适合我的解决方案。我收到错误,因为我传递了odooStringpartner_id采用的 unicode,所以我解析了它的类型并像这样更改了它。它对我有用。

 values.put("partner_id",resPartnerArrayList.get(idc).get_id())
Run Code Online (Sandbox Code Playgroud)

 values.put("partner_id", Integer.parseInt
                            (resPartnerArrayList.get(idc).get_id()));
Run Code Online (Sandbox Code Playgroud)