Я пытаюсь получить список мест для показа, а затем подсчитываю количество предстоящих шоу. У меня ошибка filtered_upcomingshows = [show for show in upcomingshows if show.start_time > current_time]
. В модели поле start_time
установлено как DateTime, а current_time
установлено как DateTime (если я не понимаю, как оно используется?). Я не могу понять, какой из них читается как строка. Как бы это исправить?
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)
}]
})