2010-03-11 3 views
1

J'ai 3 modèles django, où le premier a une clé étrangère à la seconde, et le second a une clé étrangère à la troisième. Comme ceci:Filtrer entre trois tables en utilisant Django


class Book(models.Model): 
    year_published = models.IntField() 
    author = models.ForeignKey(Author) 

class Author(models.Model): 
    author_id = models.AutoField(primary_key=True) 
    name = models.CharField(max_length=50) 
    agent = models.ForeignKey(LitAgent) 

class LitAgent(models.Model): 
    agent_id = models.AutoField(primary_key=True) 
    name = models.CharField(max_length=50) 

Je veux demander tous les agents littéraires dont les auteurs ont publié des livres en 2006, par exemple. Comment puis-je faire cela dans Django? J'ai regardé la documentation sur les filtres et les QuerySets, et ne vois pas une manière évidente. Merci.

Répondre

10
LitAgent.objects.filter(author__book__year_published=2006) 
+0

Cela fonctionne, merci. –