TypeError: cannot convert dictionary update sequence element #0 to a sequence
TypeError: cannot convert dictionary update sequence element #0 to a sequence
我正在尝试 select 具有特定代码值的 "fleet_vehicle" 对象的 ID
class fleet_inventory_line(osv.osv):
.
.
.
def find_vehicle_id(self, cr, uid, ids, args, field_name, context=None):
cr.execute("""SELECT
l.id
FROM
fleet_vehicle l
WHERE
code = 'MR444' """)
res = cr.fetchone()
return res
.
.
.
_columns = {
'x_vehicle_id': fields.function(find_vehicle_id, type='integer', string='vehicle id'),
}
我有以下错误:
TypeError: cannot convert dictionary update sequence element #0 to a
sequence
我认为问题在于:
res = cr.fetchone()
因为我正在尝试 return 一个整数,但我没有找到解决方案,如果有任何帮助,我将不胜感激
编辑:追溯
Traceback (most recent call last):
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\http.py", line 537, in _handle_exception
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\http.py", line 574, in dispatch
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\http.py", line 310, in _call_function
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\service\model.py", line 118, in wrapper
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\http.py", line 307, in checked_call
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\http.py", line 803, in call
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\http.py", line 403, in response_wrap
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server\openerp\addons\web\controllers\main.py", line 944, in call_kw
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server\openerp\addons\web\controllers\main.py", line 936, in _call_kw
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\api.py", line 268, in wrapper
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\models.py", line 3145, in read
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\api.py", line 266, in wrapper
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\models.py", line 3180, in read
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\api.py", line 266, in wrapper
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\models.py", line 3367, in _read_from_database
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\osv\fields.py", line 1478, in get
File "D:\MesDocuments\Les_prog\Odoo
8.0-20160118\server.\openerp\osv\fields.py", line 1439, in _postprocess_batch
TypeError: cannot convert dictionary update sequence element #0 to a
sequence
答案是我不得不使用
res = cr.dictfetchone()
而不是
res = cr.fetchone()
我正在尝试 select 具有特定代码值的 "fleet_vehicle" 对象的 ID
class fleet_inventory_line(osv.osv):
.
.
.
def find_vehicle_id(self, cr, uid, ids, args, field_name, context=None):
cr.execute("""SELECT
l.id
FROM
fleet_vehicle l
WHERE
code = 'MR444' """)
res = cr.fetchone()
return res
.
.
.
_columns = {
'x_vehicle_id': fields.function(find_vehicle_id, type='integer', string='vehicle id'),
}
我有以下错误:
TypeError: cannot convert dictionary update sequence element #0 to a sequence
我认为问题在于:
res = cr.fetchone()
因为我正在尝试 return 一个整数,但我没有找到解决方案,如果有任何帮助,我将不胜感激
编辑:追溯
Traceback (most recent call last):
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\http.py", line 537, in _handle_exception
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\http.py", line 574, in dispatch
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\http.py", line 310, in _call_function
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\service\model.py", line 118, in wrapper
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\http.py", line 307, in checked_call
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\http.py", line 803, in call
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\http.py", line 403, in response_wrap
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server\openerp\addons\web\controllers\main.py", line 944, in call_kw
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server\openerp\addons\web\controllers\main.py", line 936, in _call_kw
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\api.py", line 268, in wrapper
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\models.py", line 3145, in read
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\api.py", line 266, in wrapper
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\models.py", line 3180, in read
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\api.py", line 266, in wrapper
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\models.py", line 3367, in _read_from_database
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\osv\fields.py", line 1478, in get
File "D:\MesDocuments\Les_prog\Odoo 8.0-20160118\server.\openerp\osv\fields.py", line 1439, in _postprocess_batch
TypeError: cannot convert dictionary update sequence element #0 to a sequence
答案是我不得不使用
res = cr.dictfetchone()
而不是
res = cr.fetchone()