1
我有三個在SQLAlchemy中定義並使用orm.mapper()映射的表(用戶,文章和標記)。正如你在下面看到的,我爲每篇文章添加了一個屬性「作者」,該文章將該文章與創建它的用戶關聯起來。使用SQLAlchemy檢索ORM屬性
orm.mapper(User, t_users)
orm.mapper(Tag, t_tags)
orm.mapper(Article, t_articles, properties={
'author' : orm.relation(User),
'tags' : orm.relation(Tag, secondary=t_tags_articles),
})
我列出了一篇文章索引,每篇文章都需要顯示它的標籤及其作者。我試圖找出最好的方式(最小的SQL查詢,更好的性能)來檢索作者和標籤數據。
如果我這樣做:
results = Session.query(Article).all()
然後我可以拉的作者和標籤索引中的每一篇文章是這樣的:
author = results[0].author
tags = results[0].tags
但這運行的每個結果的兩個新的查詢[ x]我循環(yikes)。如果我這樣做:
results = Session.query(Article, User).join('author').all()
然後我可以訪問筆者的數據是這樣的(因爲它加入了):
firstname = results[0].firstname
而是試圖讓標籤列表不工作,而是提出了一個AttributeError(「rowTuple」對象有沒有屬性「標籤」):
tags = results[0].tags
我在做什麼錯的,什麼是訪問數據,該指標的最佳方式?
謝謝。這正是我需要的。 – Travis 2009-12-29 21:41:53