我是SQL Alchemy的菜鸟,来自.NET,所以我很难绕过这个。我有两个班级,这是一对多的关系,所以我希望能够对返回的剧集进行排序,但我无法找到正确的方法来做到这一点。以下是什么:
instrumented list has not attribute 'order_by'
我知道我在查询方面遗漏了一些内容,但我希望我可以使用这些子元素。我知道我可以再次查询以获得具有正确show_id的剧集,但这违背了建立关系的目的,对吧?谢谢你的帮助!
物件:
class Show(Base):
__tablename__ = 'show'
show_id = Column(Integer, primary_key=True)
show_name = Column(String)
first_aired = Column(Date)
is_active = Column(Boolean, default=True)
banner = Column(String)
show_directory = Column(String)
def __str__(self):
return "%s - %s" % (self.show_name, self.show_id)
class Episode(Base):
__tablename__ = 'episode'
id = Column(Integer, primary_key=True)
show_id = Column(Integer, ForeignKey('show.show_id'))
show = relationship(Show, backref=backref('episodes', uselist=True))
season_number = Column(Integer)
episode_number = Column(Integer)
episode_name = Column(String)
air_date = Column(Date)
status = Column(String, default='Retrieved')
def __str__(self):
return "%s s%se%s" % (self.show.show_name, str(self.season_number).zfill(2), str(self.episode_number).zfill(2))
def get_episode_name(self):
return self.episode_name.replace('<','').replace('>','')
的Python:
current_show = s.query(Show).filter(Show.show_id == show_id).first()
current_episodes = current_show.episodes.order_by(Episode.season_number.desc()).order_by(Episode.episode_number.desc())