I am trying to select the Id of a "fleet_vehicle" object with a specific code's value
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'),
}
I have the following error :
TypeError: cannot convert dictionary update sequence element #0 to a sequence
I think the problem is in the line :
res = cr.fetchone()
because I'm trying to return an integer, but I didn't found solution, I would be gratful for any help
Edit : the traceback
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
the answer is that I had to use
res = cr.dictfetchone()
instead of
res = cr.fetchone()