2009-10-20 6 views
1

S'il vous plaît considérer les modèles Django suivants:Comment obtenir tous les cas liés/parent de jeu d'instances de l'enfant sans boucle à travers ce dernier jeu


ParentModel(models.Model): 
    ... 

ChildModel(models.Model): 
    parent = models.ForeignKey(ParentModel, related_name='children') 

Supposons il est certain sous-ensemble de tous les enfants dans la base de données disponible en Queryset (appelez le 1er ensemble).
Maintenant, j'aimerais avoir accès au sous-ensemble de tous les parents (appelons-le le deuxième ensemble) que les enfants du 1er ensemble se rapportent à.

Comment faire cela sans boucler le 1er jeu au niveau python (et potentiellement causer un nombre linéaire de hits DB), c'est-à-dire avec seulement un ou deux hits DB?

Merci!

Répondre

4

En supposant que vous avez un queryset appelé children:

ParentModel.objects.filter(children__in=children) 
Questions connexes