这个Django查询可以改进吗?

Hob*_*use 3 python django

给定这样的模型结构:

class Book(models.Model):
    user = models.ForeignKey(User)

class Readingdate(models.Model):
    book = models.ForeignKey(Book)
    date = models.DateField()
Run Code Online (Sandbox Code Playgroud)

一本书可能有几本书Readingdate.

如何列出Readingdate特定年份内至少有一本书?

我可以做这个:

from_date = datetime.date(2010,1,1)
to_date = datetime.date(2010,12,31)

book_ids = Readingdate.objects\
            .filter(date__range=(from_date,to_date))\
            .values_list('book_id', flat=True)

books_read_2010 = Book.objects.filter(id__in=book_ids)
Run Code Online (Sandbox Code Playgroud)

是否可以使用一个查询集执行此操作,还是这是最好的方法?

Ign*_*ams 5

Book.objects.filter(readingdate__date__year=2010)
Run Code Online (Sandbox Code Playgroud)