2013-04-19 2 views
0

내 작은 웹 사이트에는 의견 표와 표가 있습니다. 웹 사이트의 각 사용자는 각 댓글에 대해 한 번 투표를합니다.SqlAlchemy : 다른 개체에 가입

사용자에게 주석을 표시 할 때 주석 테이블에서 선택하고 현재 사용자에 대해 외부 사용자와 투표를 선택합니다.

comment.my_vote를 통해 투표에 투표가 첨부되는 쿼리를 만드는 방법이 있습니까?

내가 지금하고있는 방식대로 각 결과에 대한 목록이 반환됩니다 ([의견, 투표]). 나는 그것을 직접 내 템플릿에 전달합니다. 투표가 의견의 하위 객체가 될 수 있으면 좋겠다.

+0

코드를 게시 할 수 있습니까? 세 가지, 즉 sqlalchemy 정의, 현재 코드가 템플리트에 전달되는 것, 그리고 어떤 의사 코드가 템플리트에 전달 될지를 보여주는 몇 가지 의사 코드를 사용하면 도움이됩니다. – JosefAssad

답변

0

은 결국 나는 쿼리에 의해 반환 된 튜플로 작업하는 것은 문제가되지 것을 결정했다.

2

모델에 One-to-one relationship을 추가하도록 설정하십시오. 링크 그대로의 예제 코드 :

class Parent(Base): 
    __tablename__ = 'parent' 
    id = Column(Integer, primary_key=True) 
    child = relationship("Child", uselist=False, backref="parent", 
     # lazy='joined', # @note: optional: uncomment this to have the 'child' always loaded when the parent is loaded. 
    ) 

class Child(Base): 
    __tablename__ = 'child' 
    id = Column(Integer, primary_key=True) 
    parent_id = Column(Integer, ForeignKey('parent.id')) 

귀하의 경우 Parent에서이 Comment 것 및 ChildVote이 될 것입니다.
Comment을 동시에 쿼리하면서 Vote을 열심히로드 할 수 있습니다. 이를 위해 위의 주석 처리 된 행의 주석 처리를 취소하여 쿼리가 모두 SQL 문으로 반환됩니다. 또는 명시 적으로 joinedload를 사용하여 쿼리에 Vote의 로딩을 지정할 수 있습니다

res = query(Parent).options(joinedload(Parent.child)) 
+0

여러 명의 사용자가 같은 댓글에 투표 할 수 있으므로 1 대 1이 아닙니다. – NoPyGod

관련 문제