netadm/models/base.py

19 lines
457 B
Python
Raw Permalink Normal View History

2024-10-01 20:06:21 +00:00
from sqlalchemy import MetaData
from sqlalchemy.orm import DeclarativeBase
from sqlalchemy.orm import declared_attr
from config import settings
from utils import camel_case_to_snake_case
class Base(DeclarativeBase):
__abstract__ = True
metadata = MetaData(
naming_convention=settings.db.naming_convention,
)
@declared_attr.directive
def __tablename__(cls) -> str:
return f"{camel_case_to_snake_case(cls.__name__)}s"