diff --git a/VERSION b/VERSION index 152b91b8..59224640 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.4.1-alpha.2+timestamp.2013.01.09.09.16.07 +Version 2.4.1-alpha.2+timestamp.2013.01.09.10.17.54 diff --git a/gluon/dal.py b/gluon/dal.py index 126dcd02..0196ba2b 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -8044,13 +8044,24 @@ class Table(object): raise RuntimeError("Unable to handle upload") fields[field.name] = new_name + def _defaults(self, fields): + "If there are no fields/values specified, return table defaults" + if not fields: + fields = {} + for field in self: + if field.type != "id": + fields[field.name] = field.default + return fields + def _insert(self, **fields): - return self._db._adapter._insert(self,self._listify(fields)) + fields = self._default(fields) + return self._db._adapter._insert(self, self._listify(fields)) def insert(self, **fields): + fields = self._defaults(fields) self._attempt_upload(fields) if any(f(fields) for f in self._before_insert): return 0 - ret = self._db._adapter.insert(self,self._listify(fields)) + ret = self._db._adapter.insert(self, self._listify(fields)) if ret and self._after_insert: fields = Row(fields) [f(fields,ret) for f in self._after_insert]