Je rencontre des difficultés pour obtenir des objets connexes (second degré). Mes modèles regardent actuellement comme ceTraverser les clés étrangères Django de manière efficace pour les ensembles de requêtes
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)
...
Ce que je fais jusqu'à présent pour obtenir une liste agrégée des transaced_with
pour un compte est la suivante:
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
De cette façon est cependant très lent, donc Je me demandais, quelle est la manière efficace d'agréger ces sortes d'objets connexes? Ce que je veux à la fin est une liste de address
du Account
s accs