如何解决用 sqlalchemy 和棉花糖求和
我正在使用 python 的框架金字塔、sqlalchemy 数据和棉花糖序列化。 我想向客户发送一笔价值
我有挑战和使用这个挑战的玩家,玩家的每个动作都是一个事件,每个事件都有一个持续时间。
对于每个挑战,我想为每个玩家发送总和的持续时间,并且只为一个玩家发送这个值。我尝试使用混合属性或 pre_dump 函数,但我没有成功
-
__tablename__ = "Challenge" id = Column(Integer,primary_key=True) name = Column(String(255),unique=True,nullable=False) description = Column(TEXT(length=65535)) map_url = Column(String(255)) end_date = Column(DateTime(timezone=False)) alone_only = Column(Integer) level = Column(String(255)) scalling = Column(Integer) draft = Column(Boolean,server_default=text("0")) admin_id = Column(Integer,ForeignKey("User.id")) admin = relationship("User",backref="challenge_manager") event_sum_user = relationship("Events")``` @hybrid_property def event_sum(self): return sum(Events.duration for Events in self.event_sum_user)
-
id = fields.Int() name = fields.str() description = fields.str() end_date = fields.DateTime() alone_only = fields.Int() level = fields.str() scalling = fields.Int() draft = fields.Bool() admin = fields.nested(UserSchema) admin_id = fields.Int(load_only=True) event_sum = fields.Int(dump_only=True) @pre_dump def get_eventsum(self,data,**kwargs): data["event_sum"] = DBSession.query(func.sum(Events.duration)).filter(Events.challenge_id==data["id"]).filter(Events.user_id==1).first() return data```
使用这种方法,我有一个错误 TypeError: 'Challenge' object is not subscriptable'
这样做的目的是发送每个挑战的用户或每个用户实现的总持续时间:id_user 和总持续时间。
感谢您的帮助
玛丽莲
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。