Django查询集复杂查找

时间:2013-01-18 17:57:55

标签: mysql django

我希望使用Django Query Set以最佳方式解决这个问题。

每个图书馆只能有一本图书。 有几个图书馆可以有同一本书的多个实例(即:Library1可以有一个“龙纹身女孩”的实例,而Library4可以有另一个“龙纹身女孩”的实例)

Book(models.Model):
    name = models.CharField(max_length=30)

Library(models.Model):
    book = models.ForeignKey(Book)    # multiple libraries have the book
    city = models.CharField(max_length=50)

那么我怎样才能找到一本少于3个图书馆的书?

1 个答案:

答案 0 :(得分:1)

使用annotateCount

 Book.objects.annotate(n_libraries=Count('library')).filter(n_libraries__lt=3)