def save(self): for name, field in self.fields.items(): if name not in self: if field.default != None: self[name] = getattr(self, name) elif field.required: raise ValueError("Missing required field '%s'." % name) if name in self: field.validate(self[name]) # data = dict([(k, self.fields[k].encode(v)) for k, v in self.items()]) Record.save(self)