diff --git a/OpenOversight/app/models/database.py b/OpenOversight/app/models/database.py index 2924ac664..989fbcbd0 100644 --- a/OpenOversight/app/models/database.py +++ b/OpenOversight/app/models/database.py @@ -11,7 +11,13 @@ from flask_login import UserMixin from flask_sqlalchemy import SQLAlchemy from sqlalchemy import CheckConstraint, UniqueConstraint, func -from sqlalchemy.orm import DeclarativeMeta, declarative_mixin, declared_attr, validates +from sqlalchemy.orm import ( + DeclarativeBase, + MappedAsDataclass, + declarative_mixin, + declared_attr, + validates, +) from sqlalchemy.sql import func as sql_func from werkzeug.security import check_password_hash, generate_password_hash @@ -34,7 +40,10 @@ db = SQLAlchemy() jwt = JsonWebToken(SIGNATURE_ALGORITHM) -BaseModel: DeclarativeMeta = db.Model + + +class BaseModel(MappedAsDataclass, DeclarativeBase): + """subclasses will be converted to dataclasses""" officer_links = db.Table(