Par exemple, j'ai ces modèles:Django - les recherches inverses
class Person(models.Model):
name = models.CharField(max_length=20)
employer = models.CharField(max_length=20)
class Car(models.Model):
person = models.ForeignKey(Person)
name = models.CharField(max_length=10)
model = models.CharField(max_length=10)
...
Eh bien, je veux obtenir tous les gens comment possèdent une voiture particulière:
people = Person.objects.filter(car__name="Toyota")
Maintenant, je veux écrire ce peuple avec des détails sur sa voiture. Je peux le faire:
for person in people:
...
cars = person.car_set.filter(name="Toyota")
...
Mais c'est le prochain hit de la base de données. Comment puis-je éviter ça? Y at-il un moyen de le faire plus simple?
Un effet secondaire de l'utilisation de cette technique est que si vous avez une personne qui n'a pas de voiture, vous ne verrez pas cela dans cette requête. C'est parce que la requête est lancée sur le domaine des voitures. – arustgi