2017-08-14 15 views
1

関連オブジェクトを効率的に取得するのに問題があります。私のモデルは、現在、私はアカウントのtransaced_withの集約されたリストを取得するには、これまで行ってきた何このクエリセットに対して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) 
    ... 

ように見える 次のようにされています。この方法では、しかしそう、非常に遅いです

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 

私は不思議だった どのような関連オブジェクトのこれらの並べ替えを集めるための効率的な方法は何ですか?私が最後に望むのは、Accountaddressのリストです。accs

答えて

関連する問題