model.py 674 B

123456789101112131415161718192021222324252627
  1. from bson import ObjectId
  2. class Model(dict):
  3. """
  4. A simple model that wraps mongodb document
  5. """
  6. __getattr__ = dict.get
  7. __delattr__ = dict.__delitem__
  8. __setattr__ = dict.__setitem__
  9. def save(self):
  10. if not self._id:
  11. self.collection.insert(self)
  12. else:
  13. self.collection.update(
  14. { "_id": ObjectId(self._id) }, self)
  15. def reload(self):
  16. if self._id:
  17. self.update(self.collection\
  18. .find_one({"_id": ObjectId(self._id)}))
  19. def remove(self):
  20. if self._id:
  21. self.collection.remove({"_id": ObjectId(self._id)})
  22. self.clear()