Folks, I'm having exceptional trouble understanding annotate(), aggregate(), and their various combinations. I'm currently stuck here:
https://docs.djangoproject.com/en/1.9/topics/db/aggregation/#combining-multiple-aggregations
The example here uses Book.objects.first().chapters.count(), but there's no chapters model or field at the start of the tutorial. It's frustrating, to say the least. Even if I set up a separate application to test this myself, what do I make of "chapters"? Is it another model with many-to-many relation with Book? When I ran an example with the following models:
class Author(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
class Book(models.Model):
name = models.CharField(max_length=300)
chapters = models.IntegerField()
authors = models.ManyToManyField(Author)
I got:
>>> Book.objects.first().chapters.count()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'int' object has no attribute 'count'
>>>
So basically, I feel like I'm screwed. Please help.