2017-03-24 45 views
0

我想加載關係2級下來,它似乎joinedload()函數限制我在1直接關係一次只有2。基本上,我試圖獲得promotion'ssponsor,typecategory如何在SQLAlchemy中一次加載兩個以上的子關係?

以下是錯誤:

TypeError: joinedload() takes at most 3 arguments (4 given) 

代碼:

matrix_engagements = matrix_session.query(MatrixEngagement) \ 
    .filter(MatrixEngagement.id > latest_goldstrike_engagement_id) \ 
    .options(joinedload('promotion').joinedload('sponsor', 'type', 
               'category')) \ 
    .options(joinedload('player'))\ 
    .options(joinedload('user_coupon').joinedload('coupon').joinedload(
     'reward'))\ 
    .options(joinedload('kiosk'))\ 
    .order_by(MatrixEngagement.id.asc()).limit(10).all() 

joinedload()功能:

def joinedload(*keys, **kw): 
    return _UnboundLoad._from_keys(
     _UnboundLoad.joinedload, keys, False, kw) 

似乎應該採取的keys無限量。

回答

0

簡單地增加具有相同父關係的第二線並達到目的:

... 
.options(joinedload('promotion').joinedload('sponsor', 'type'))\ 
.options(joinedload('promotion').joinedload('category'))\ 
... 
相關問題