![](/img/trans.png)
[英]SQLAlchemy for Python, 'Query' object has no attribute 'fetchone'
[英]How to get attribute of a sqlalchemy query object
下面的代碼寫在flask框架的views.py中:
view.py:
motions = db.session.query(
Motion.id,
Motion.summary,
Motion.motion_type_id,
Motion_Type.description,
Motion_Type.id,
Motion.mp_op_type,
Motion.judge_id,
Judge.id,
Judge.name,
Motion.case_id,
Case.id,
Case.summary,
Case.case_type_id,
Case_Type.description,
Case_Type.id,
Motion.ruling_id,
Ruling.name,
Ruling.id
).filter(
Case.id == Motion.case_id
).order_by(
Judge.name,
Case_Type.description,
Ruling.name,
Motion_Type.description
)
如何在查詢中獲取屬性? 我希望得到類似的東西:
for x in motions:
print(x.ruling())
但是,我的錯誤是在views.py中的'motion'中沒有名為'ruling'的屬性。 所以我的問題是,如何在查詢中獲取屬性? 我錯過了什么,或者說,我應該從models.py調用某些東西或在html模板上實例化某些內容嗎? 很迷茫。
問題是你並沒有真正按照設計使用Query API。 看起來你正在尋找這樣的東西(假設你的關系在你的模型中正確設置):
import sqlalchemy as sa
motions_query = db.session.query(
Motion
).join(
Motion.case
).join(
Case.judge
).join(
Case.case_type
).options(
sa.orm.contains_eager(Motion.case).contains_eager(Case.judge),
sa.orm.contains_eager(Case.case_type)
).filter(
Case.id == Motion.case_id
).order_by(
Judge.name,
Case_Type.description,
Ruling.name,
Motion_Type.description
)
for motion in motions_query:
print(motion.case.summary)
print(motion.case.judge.name)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.