python - 数据库提取缺少 ids (u'1') 并且有额外的 ids (1),可能是由于先前请求中的类型不一致造成的
python - Database fetch misses ids (u'1') and has extra ids (1), may be caused by a type incoherence in a previous request
我正在 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);
我认为您试图将 unicode 值传递给 Many2one
字段。执行类型转换。我认为你的情况是 payment_term_id
。
希望对您有所帮助。
我找到了适合我的解决方案。我得到了错误,因为我在 partner_id
中传递了 String
,odoo 将其作为 unicode,所以我解析它的类型并像这样更改它。它对我有用。
values.put("partner_id",resPartnerArrayList.get(idc).get_id())
到
values.put("partner_id", Integer.parseInt
(resPartnerArrayList.get(idc).get_id()));
我正在 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);
我认为您试图将 unicode 值传递给 Many2one
字段。执行类型转换。我认为你的情况是 payment_term_id
。
希望对您有所帮助。
我找到了适合我的解决方案。我得到了错误,因为我在 partner_id
中传递了 String
,odoo 将其作为 unicode,所以我解析它的类型并像这样更改它。它对我有用。
values.put("partner_id",resPartnerArrayList.get(idc).get_id())
到
values.put("partner_id", Integer.parseInt
(resPartnerArrayList.get(idc).get_id()));