두 모델이 있다고 가정합니다. 계정 및 질문. 내가 제공된 질문 ID에서 JSON 형식의 질문을 반환하는 방법을 가지고slqlachemy가 변수 선언에 의해로드 됨
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'))
: 같은
class Account(DeclarativeBase):
__tablename__ = 'accounts'
id = Column(Integer, primary_key=True)
user_name = Column(Unicode(255), unique=True, nullable=False)
내 질문 모델을합니다. 이 방법이 아래와 같을 경우
id
content
및
account_id
을 반환합니다.
@expose('json')
def question(self, question_id):
return dict(questions=DBSession.query(Question).filter(Question.id == question_id).one())
계정의 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)
왜 이런 일을해야합니까? 이 이유는 무엇입니까? Relationship Loading Techniques에서
매우 유용합니다. 감사합니다. – Juggernaut