2011-09-09 32 views
11

Tôi có một vài mô hình trong Django nơi tôi đính kèm một vị trí để mỗi blog xuất bản:Filtering trên Keys nước ngoài trong 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) 

Tôi đang cố gắng để lọc chúng vào tên quốc gia nhưng tôi nhận được "Lỗi Cú pháp : từ khoá không thể là một biểu thức "khi tôi thử các cách sau:

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

Bất kỳ ý tưởng nào về cách tôi có thể lọc dựa trên tên quốc gia?

+2

1 năm sau câu trả lời vẫn chưa được chấp nhận !!. – shabeer90

Trả lời

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

btw! Canada rocks =) –

+5

Và tài liệu liên quan đến câu trả lời này là [ở đây] (https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships). –

+0

Điều gì sẽ là thời gian phức tạp? –

Các vấn đề liên quan