Sqlalchemy mixins / and event listener

Próbuję 2 nowych rzeczy naraz, dlatego doceniam pomoc w upraszczaniu i wyjaśnianiu.

from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy import Column, Float, event

class TimeStampMixin(object):

    @declared_attr
    def __tablename__(cls):
        return cls.__name__.lower()

    created = Column(Float)
    modified = Column(Float)
    def __init__(self, created = None,
                       modified = None):
        self.created = created
        self.modified = modified

def create_time(mapper, connection, target):
    target.created = time()

#def modified_time(mapper, connection, target):
#    target.modified = time()

event.listen(TimeStampMixin, 'before_insert', create_time)
#event.listen(TimeStampMixin, 'before_update', modified_time)

Chcę stworzyć mixin, który mogę zastosować w każdej klasie:

class MyClass(TimeStampMixin, Base):
    etc, etc, etc

Ta klasa dziedziczy funkcjonalność, która tworzy znacznik czasu podczas tworzenia i tworzy / modyfikuje znacznik czasu podczas aktualizacji.

przy imporcie pojawia się ten błąd:

raise exc.UnmappedClassError(class_)
sqlalchemy.orm.exc.UnmappedClassError: Class 'db.database.TimeStampMixin' is not mapped

aaa i jestem w tym momencie zakłopotany.

questionAnswers(4)

yourAnswerToTheQuestion