6
0

base.py 794 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from pycs import db
  2. from pycs.database.util import commit_on_return
  3. class BaseModel(db.Model):
  4. __abstract__ = True
  5. id = db.Column(db.Integer, primary_key=True)
  6. def remove(self, commit: bool = True) -> None:
  7. """
  8. remove this instance from the database
  9. :return:
  10. """
  11. db.session.delete(self)
  12. if commit:
  13. self.commit()
  14. @classmethod
  15. def new(cls, commit=False, **kwargs):
  16. obj = cls(**kwargs)
  17. db.session.add(obj)
  18. if commit:
  19. self.commit()
  20. def commit(self):
  21. db.session.commit()
  22. class NamedBaseModel(BaseModel):
  23. __abstract__ = True
  24. name = db.Column(db.String, nullable=False)
  25. @commit_on_return
  26. def set_name(self, name: str):
  27. self.name = name