2017-08-14 66 views
1

我很難高效地獲取(二級)相關對象。 我的模型是目前這個樣子爲查詢集有效地遍歷Django外鍵

class Transaction(models.Model): 
    from_account = models.ForeignKey(Account, related_name="sent") 
    to_account = models.ForeignKey(Account, related_name="recieved") 
    ... 

class Account(models.Model): 
    address = models.CharField(max_length=42, primary_key=True) 
    ... 

我一直在做,到目前爲止獲得的transaced_with的彙總清單的帳戶如下:

accs = [] 
if hasattr(account, 'recieved'): 
    for tx in account.recieved.all(): 
     acc = tx.from_account 
     accs.append(acc) 

if hasattr(account, 'sent'): 
    for tx in account.sent.all(): 
     acc = tx.to_account 
     accs.append(acc) 
return accs 

這樣,但是速度很慢,所以我在想, 聚合這類相關對象的有效方法是什麼?我最想要的是address列表Account中的accs

回答