wip
This commit is contained in:
parent
4be274d9e2
commit
c238b9d757
21 changed files with 219 additions and 184 deletions
46
learn_sql_model/models/fast_model.py
Normal file
46
learn_sql_model/models/fast_model.py
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
from sqlmodel import SQLModel, select
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from learn_sql_model.config import Config
|
||||
|
||||
|
||||
class FastModel(SQLModel):
|
||||
def pre_post(self) -> None:
|
||||
"""run before post"""
|
||||
|
||||
def pre_delete(self) -> None:
|
||||
"""run before delete"""
|
||||
|
||||
@classmethod
|
||||
def pre_get(self) -> None:
|
||||
"""run before get"""
|
||||
|
||||
def post(self, config: "Config" = None) -> None:
|
||||
if config is None:
|
||||
from learn_sql_model.config import get_config
|
||||
|
||||
config = get_config()
|
||||
|
||||
self.pre_post()
|
||||
|
||||
with config.session as session:
|
||||
session.add(self)
|
||||
session.commit()
|
||||
|
||||
@classmethod
|
||||
def get(
|
||||
self, item_id: int = None, config: "Config" = None
|
||||
) -> Optional["FastModel"]:
|
||||
if config is None:
|
||||
from learn_sql_model.config import get_config
|
||||
|
||||
config = get_config()
|
||||
|
||||
self.pre_get()
|
||||
|
||||
with config.session as session:
|
||||
if item_id is None:
|
||||
return session.exec(select(self)).all()
|
||||
return session.exec(select(self).where(self.id == item_id)).one()
|
||||
Loading…
Add table
Add a link
Reference in a new issue