Hey guys -

I forgot about the really obvious way to do this - class decorators:

from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

def common_columns(cls):
    cls.created_at = Column(DateTime, default=func.now)
    cls.udpated_at = Column(DateTime, default=func.now, onupdate=func.now)
    return cls
    
@common_columns
class MyClass(Base):
    __tablename__ = 'mytable'
    
    id = Column(Integer, primary_key=True)
    data = Column(String)

@common_columns
class MyOtherClass(Base):
    __tablename__ = 'myothertable'

    id = Column(Integer, primary_key=True)
    data = Column(String)
    
engine = create_engine('sqlite://', echo=True)

Base.metadata.create_all(engine)

--

You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.


Reply via email to