def as_dict(self) -> dict[str, object]:
"""Return self as (json.dumps-coompatible) dict."""
d: dict[str, object] = {'id': self.id_}
+ if len(self.to_save_versioned) > 0:
+ d['_versioned'] = {}
for k in self.to_save:
attr = getattr(self, k)
if hasattr(attr, 'as_dict'):
d[k] = attr
for k in self.to_save_versioned:
attr = getattr(self, k)
- d[k] = attr.as_dict
+ assert isinstance(d['_versioned'], dict)
+ d['_versioned'][k] = attr.history
for r in self.to_save_relations:
attr_name = r[2]
d[attr_name] = [x.as_dict for x in getattr(self, attr_name)]