我有两个声明性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装饰器吗?我不知道如何实际使用它。
答案 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__
中。