<s>[INST] I have the following model:
```
class Author(models.Model):
    name = models.CharField(max_length=200)
    birth_date = models.DateField()

class Book(models.Model):
    title = models.CharField(max_length=200)
    authors = models.ManyToManyField(Author)
    publication_year = models.IntegerField()
```
I'm trying to filter and count the books written by authors born between two dates. Here is my query attempt:
```
from datetime import datetime
start_date = datetime(1900, 1, 1)
end_date = datetime(2000, 12, 31)

authors = Author.objects.filter(birth_date__range=(start_date, end_date))
books = Book.objects.filter(authors__in=authors).values('title').annotate(num_authors=Count('authors')).filter(num_authors=len(authors))
```
However, this query doesn't work. The `Count('authors')` seems to count the number of authors for each book, but I want it to count the number of authors that are within that range.

Here is the expected result:

For each book that has one or more authors born between the start and end dates, I want to get the `title` and the count of authors that fall within that range.

How can I achieve this with Django ORM?[/INST]