2011-09-09 18 views
11

tengo algunos modelos en Django, donde hay que adjuntar una ubicación para cada blog publicado:y filtros de claves externas de 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) 

Estoy tratando de filtrarlos en nombre del país, pero estoy consiguiendo "SyntaxError : la palabra clave no puede ser una expresión" cuando intento el siguiente:

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

Cualquier ideas sobre cómo podría filtrar basado en el nombre del país?

+2

¡1 año después todavía no se acepta la respuesta! – shabeer90

Respuesta

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

por cierto! Canada rocks =) –

+5

Y la documentación con respecto a esta respuesta es [aquí] (https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships). –

+0

¿Cuál será la complejidad del tiempo? –

Cuestiones relacionadas