过滤Django中的外键

Mar*_*k L 12 python django orm

我在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)
Run Code Online (Sandbox Code Playgroud)

我试图在国家名称上过滤它们,但是当我尝试以下操作时,我得到"SyntaxError:关键字不能成为表达式":

blog_list = Blog.objects.filter( town.country.country_name = 'Canada' ).order_by( '-id' )
Run Code Online (Sandbox Code Playgroud)

有关如何根据国家/地区名称进行过滤的任何想法?

Art*_*ves 17

blog_list = Blog.objects.filter( town__country__country_name = 'Canada' ).order_by( '-id' )
Run Code Online (Sandbox Code Playgroud)

  • 关于这个答案的文档是[这里](https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships). (5认同)