From 55281650e2aaac80fe9945fe85289d431bd387ad Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Mon, 10 Feb 2014 19:50:18 +0100 Subject: [PATCH 1/2] dal.py: BaseAdapter: insert: solved problem when creating new record without passing the primary key as argument --- gluon/dal.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gluon/dal.py b/gluon/dal.py index 638afe99..2a7f769a 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -1359,8 +1359,9 @@ class BaseAdapter(ConnectionPool): return table._on_insert_error(table,fields,e) raise e if hasattr(table,'_primarykey'): - return dict([(k[0].name, k[1]) for k in fields \ - if k[0].name in table._primarykey]) + mydict = dict([(k[0].name, k[1]) for k in fields if k[0].name in table._primarykey]) + if mydict != {}: + return mydict id = self.lastrowid(table) if not isinstance(id, (int, long)): return id From edbf45e5429a67155d2c6b872bc1d86a6e7f4bc3 Mon Sep 17 00:00:00 2001 From: Oscar Rodriguez Date: Fri, 14 Feb 2014 11:20:29 +0100 Subject: [PATCH 2/2] dal.py: BaseAdapter: insert: solved problem when creating new record without passing the primary key as argument --- gluon/dal.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gluon/dal.py b/gluon/dal.py index 2a7f769a..48f08c31 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -1358,11 +1358,13 @@ class BaseAdapter(ConnectionPool): if hasattr(table,'_on_insert_error'): return table._on_insert_error(table,fields,e) raise e - if hasattr(table,'_primarykey'): + if hasattr(table, '_primarykey'): mydict = dict([(k[0].name, k[1]) for k in fields if k[0].name in table._primarykey]) if mydict != {}: return mydict id = self.lastrowid(table) + if hasattr(table, '_primarykey') and len(table._primarykey) == 1: + id = {table._primarykey[0]: id} if not isinstance(id, (int, long)): return id rid = Reference(id)