Ah I was really close. This worked:


class TagMixin(object):
    @declared_attr
    def tags(cls):
        class Tag(BaseModel):
            __tablename__ = "tag_%s" % cls.__tablename__

            id = Column(types.Integer, primary_key=True)
            time_created = Column(types.DateTime, default=datetime.now, 
nullable=False)

            row_id = Column(types.Integer, ForeignKey(cls.id), index=True)
            name = Column(types.String, nullable=False, index=True)

        cls.TagClass = Tag

        return orm.relationship(Tag, backref='tagged')



class User(BaseModel, TagMixin):
    __tablename__ = 'user'

    id = Column(types.Integer, primary_key=True)
    ...


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

Reply via email to