Python 3和sqlalchemy模型属性

时间:2014-04-18 22:24:53

标签: python python-3.x dictionary properties sqlalchemy

我有两个声明性sqlalchemy模型。

class Users(Base):
    __tablename__ = 'Users'
    ID = Column(INTEGER, primary_key=True)
    _Activities = relationship('Activities', lazy='subquery')

class UserCourseActivities(Base):
     __tablename__ = 'Activities'

     ActivityID = Column(INTEGER, primary_key=True)
     UserID = Column(INTEGER, ForeignKey('Users.ID'))
     ActivityCount = Column(INTEGER)

有没有办法让每个用户实例在__dict__中拥有总计(活动计数)?我已经尝试添加其他类属性,但我担心我可能不得不使用经典映射。 Users表有很多关系,使声明方法更具吸引力。有没有办法实现这个目标?

我可以使用@column_property装饰器吗?我不知道如何实际使用它。

1 个答案:

答案 0 :(得分:0)

原来,列属性不是装饰器。

activity_total = column_property(
    select(
        [func.sum(
            Activities.ActivityCount
        )
        ]).\
        where(Activities.UserID==PK1).\
        correlate_except(Activities)
) #This is officially the ugliest thing I have ever seen

此“列”也显示在用户实例__dict__中。