订购SQLAlchemy异物

时间:2014-12-04 18:22:15

标签: python python-3.x sqlalchemy

我是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())

0 个答案:

没有答案