2011-09-09 5 views
11

J'ai quelques modèles de Django où j'attache un emplacement pour chaque blog publié:Filtrage sur les clés étrangères Django

class Country(models.Model): 
    country_name = models.TextField() 

class Town(models.Model): 
    country = models.ForeignKey(Country) 
    town_name = models.CharField(max_length=192) 

class Blog(models.Model): 
    town = models.ForeignKey(Town) 

Je suis en train de les filtrer sur le nom du pays, mais je deviens « SyntaxError : mot-clé ne peut pas être une expression » quand je effectuez les opérations suivantes:

blog_list = Blog.objects.filter(town.country.country_name = 'Canada').order_by('-id') 

Toutes les idées sur la façon dont je pourrais filtrer en fonction du nom du pays?

+2

1 an plus tard, la réponse n'est toujours pas acceptée !! – shabeer90

Répondre

16
blog_list = Blog.objects.filter(town__country__country_name = 'Canada').order_by('-id') 
+0

btw! Canada rocks =) –

+5

Et la documentation concernant cette réponse est [ici] (https://docs.djangoproject.com/fr/dev/topics/db/queries/#lookups-that-span-relationships). –

+0

Quelle sera la complexité du temps? –

Questions connexes