BaseModel = declarative_base()


class Base(BaseModel):
    __abstract__ = True

def __init__(self, **kwargs):
    for attr in self.__mapper__.column_attrs:
        if attr.key in kwargs:
            continue
assert len(attr.columns) == 1
col = attr.columns[0]
if col.default and not callable(col.default.arg):
    kwargs[attr.key] = col.default.arg
super(Base, self).__init__(**kwargs)
Как применить значения столбца по умолчанию перед фиксацией в sqlalchemy