0
假设我有两个模型。帐户和问题。slqlachemy加入变量声明
class Account(DeclarativeBase):
__tablename__ = 'accounts'
id = Column(Integer, primary_key=True)
user_name = Column(Unicode(255), unique=True, nullable=False)
和我的问题型号如:
class Question(DeclarativeBase):
__tablename__ = 'questions'
id = Column(Integer, primary_key=True)
content = Column(Unicode(2500), nullable=False)
account_id = Column(Integer, ForeignKey(
'accounts.id', onupdate='CASCADE', ondelete='CASCADE'), nullable=False)
account = relationship('Account', backref=backref('questions'))
我得到的返回从所提供的问题ID JSON格式问题的方法。 当方法如下所示时,它只返回问题的id
content
和account_id
。
@expose('json')
def question(self, question_id):
return dict(questions=DBSession.query(Question).filter(Question.id == question_id).one())
但我需要将account_name的user_name也包含在json响应中。奇怪的事情(至少对我来说)是我必须明确地告诉方法,查询结果包含与帐户的关系,并且这样帐户信息将包含在json响应中:我的意思是做类似这样的事情
@expose('json')
def question(self, question_id):
result = DBSession.query(Question).filter(Question.id == question_id).one()
weird_variable = result.account.user_name
return dict(question=result)
为什么我必须做这样的事情?这背后的原因是什么?
非常有用,谢谢 – Juggernaut