diff --git a/src/grung/db.py b/src/grung/db.py index 035fa65..2b6230f 100644 --- a/src/grung/db.py +++ b/src/grung/db.py @@ -22,6 +22,7 @@ class RecordTable(table.Table): super().__init__(db.storage, name, **kwargs) def insert(self, document): + document.before_insert() doc = document.serialize(self._db) self._check_constraints(doc) diff --git a/src/grung/types.py b/src/grung/types.py index 3f49237..89f192f 100644 --- a/src/grung/types.py +++ b/src/grung/types.py @@ -75,6 +75,9 @@ class Record(Dict[(str, Field)]): rec[name] = _field.deserialize(self[name], db) return self.__class__(rec, doc_id=self.doc_id) + def before_insert(self): + pass + def __setattr__(self, key, value): if key in self: self[key] = value