Hi:
I'm having trouble getting a subquery to return entities.
class Question(Base):
__tablename__ = 'question'
question_id = Column(INTEGER(unsigned=True), primary_key=True)
...etc
q_answers = relationship("Answer", backref="question")
class Answer(Base):
__tablename__ = 'answer'
answer_id = Column(INTEGER(unsigned=True), primary_key=True)
user_id = Column(INTEGER(unsigned=True), ForeignKey('user.user_id'),
nullable=False)
question_id = Column(INTEGER(unsigned=True),
ForeignKey('question.question_id'), nullable=False)
...etc
stmt = session.query(Answer).filter(Answer.user_id ==
user_id).subquery()
answers = aliased(Answer, stmt)
query = session.query(Question, answers)\
.outerjoin(answers, Question.q_answers)\
.filter(Question.question_group_id == question_group_id)
questions = query.all()
This generates MySQL that returns all desired columns and returns NULL
if question has not yet been answered by the specified user. Groovy so
far.
I was expecting tuples in the list of questions (Answer, Question),
but the first element is always None. e.g.
>>> dir(questions[0])
[None, 'Question', ... etc
So while I'm expecting the subquery results to be understood as
entities (Answer), this isn't happening. But I cannot figure out why.
Where have I failed?
Thanks!
-C
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.