Currently I am practicing for annotate and have some confusion regarding below code.
>>> b = Book.objects.all().annotate(upper_name = Upper('name'))
>>> b[0].name
'Book1'
>>> b[0].upper_name
'BOOK1'
>>> ba = Book.objects.annotate(upper_name = Upper('name'))
>>> ba[0]
<Book: Book1>
>>> ba[0].name
'Book1'
>>> ba[0].upper_name
'BOOK1'
I am getting same output when not using all() so what is difference between using Book.objects.all() and 'Book.objects.annotate()'.
How doing annotate() on Book objects without all() provide all Book objects.
I have read Django documentation but not able to find any answer.
Thanks.