ホーム>source

承認された応答のみを取得しようとしています(段階的>1)しかし、何らかの理由でReply.staged>primaryjoinの1が機能していません

私はsqlAlchemyが非常に新しいので、親の関係がremote_sideで何をしているのか本当にわかりません

<前>ウィズウィズ

story.repliesのwhere句: どこ class Story(Base): __tablename__ = ’Story' id = Column(‘ID', Integer, primary_key=True) anonymous = Column(TINYINT) detail = Column('detail',String, js_name='detail') summary = Column('summary',String, js_name='questionSummary') user_id = Column('uid', Integer, ForeignKey('rlUser.uid'), js_name='userId') user = relationship("User") inspire_id = Column('inspireID', Integer, js_name='inspireId') staged = Column(TINYINT) class Reply(Base): __tablename__ = 'Reply' id = Column('replyID', Integer, primary_key=True) parent_id = Column('parentID', Integer, ForeignKey('rlReply.replyID'),js_name='parentId') user_id = Column('userID', Integer, js_name='userId') detail = Column(String, js_name='detail') reply_date = Column('replyDate', TIMESTAMP, js_name='replyDate') expertise_type = Column('expertiseType', Integer, js_name='expertiseType') status = Column(Integer) staged = Column(Integer) story = relationship(“Story",primaryjoin='and_(Reply.story_id == Story.id, Reply.parent_id==0, Reply.staged>1)', backref=backref("replies", uselist=True )) parent = relationship('Reply',primaryjoin='and_(Reply.parent_id==Reply.id, Reply.staged>1)', backref='responses', remote_side='Reply.id', viewonly=True, uselist=True) def __init__(self): self.staged = constants.POST_QUEUE_STATUS['STAGED'] @property def reply_count(self): return len(self.responses) . Reply =%sおよび rushlineID . Reply =%sおよび parentID .staged> %s

parms sqlalchemy.engine.base.Engine(110L、0、1)

しかし、これは完璧です: story.replies [0] .responsesのwhere句: どこ Reply . Reply =%sおよび%s> %s

パラメータはsqlalchemy.engine.base.Engine(68L、2、1)です。

私が必要なのはWHERE parentID . Reply =%s AND AND parentID .staged> %sおよび%s> %s sqlalchemy.engine.base.Engine(68L、1、2、1)

Reply
あなたの答え
  • 解決した方法 # 1

    これに対する魔法の呪文は、私は認めざるを得ません。私は、試行錯誤と多くのエラーを乗り越えました。関連するビットは次のとおりです。

    <前>ウィズウィズ parent_id = RlColumn('parentID', Integer, ForeignKey('rlReply.replyID'), js_name='parentId') parent = RlRelationship('Reply', primaryjoin='and_(Reply.parent_id==remote(Reply.id),Reply.flagged_status <2)', remote_side=id, uselist=True, foreign_keys=parent_id, backref='replies')

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ python - ボタンのリストのすべてのボタンにイベントを追加する