【发布时间】:2020-08-02 00:57:25
【问题描述】:
我正在尝试获取要展示的场地列表,然后计算即将举行的演出的数量。我在filtered_upcomingshows = [show for show in upcomingshows if show.start_time > current_time] 遇到错误。该模型将start_time 字段设置为日期时间,current_time 设置为日期时间(除非我误解了它的使用方式?)。我无法弄清楚哪个被读取为字符串。我该如何解决这个问题?
class Show(db.Model):
__tablename__ = 'shows'
id = db.Column(db.Integer, primary_key=True)
artist_id = db.Column(db.Integer, db.ForeignKey('artists.id'), nullable = False)
venue_id = db.Column(db.Integer, db.ForeignKey('venues.id'), nullable = False)
start_time = db.Column(db.DateTime, nullable = False)
def __repr__(self):
return '<Show {} {}>'.format(self.artist_id, self.venue_id)
@app.route('/venues')
def venues():
current_time = datetime.now().strftime('%Y-%m-%d %H:%S:%M')
venue_city_state = ''
data = []
# queries Venue db for all records
venues = Venue.query.all()
for venue in venues:
upcomingshows = venue.shows
filtered_upcomingshows = [show for show in upcomingshows if show.start_time > current_time]
if venue_city_state == venue.city + venue.state:
data[len(data) - 1]["venues"].append({
"id": venue.id,
"name": venue.name,
"num_upcoming_shows": len(filtered_upcomingshows)
})
else:
venue_city_state == venue.city + venue.state
data.append({
"city": venue.city,
"state": venue.state,
"venues": [{
"id": venue.id,
"name": venue.name,
"num_upcoming_shows": len(filtered_upcomingshows)
}]
})
【问题讨论】:
标签: python postgresql flask sqlalchemy