我有一些简单的课程:
class Terminal(db.Model):
id = db.Column(db.Integer, primary_key = True)
terminal_id = db.Column(db.String(100), nullable = False)
statistics = db.relationship('TerminalStatistic', backref='observed_terminal', lazy='dynamic')
def all_statistics(self) -> int:
todayDate = datetime.now()
if todayDate.day > 25:
todayDate += datetime.timedelta(7)
first_day_of_month = todayDate.replace(day=1)
return self.statistics.query(func.sum(TerminalStatistic.cash)).filter(TerminalStatistic.collection_date >= first_day_of_month)
def __repr__(self):
return "Terminal('{0}','{1}')".format(self.address, self.date_last_online)
class TerminalStatistic(db.Model):
id = db.Column(db.Integer, primary_key = True)
terminal_id = db.Column(db.Integer, db.ForeignKey('terminal.id'))
collection_date = db.Column(db.DateTime, nullable = False)
cash = db.Column(db.Integer, nullable = True)
所以Terminal
与TerminalStatistic
有关系。
现在我想对all_statistics(self)
中的所有统计数据求和,但出现错误:
return self.statistics.query(db.func.sum(TerminalStatistic.cash)).filter(TerminalStatistic.collection_date >= first_day_of_month)
AttributeError: 'AppenderBaseQuery' object has no attribute 'query'
如何使用函数对类中的集合进行查询
我找到了解决办法:
相关问题 更多 >
编程相关推荐