В настоящее время я практикуюсь для аннотирования и имею некоторую путаницу в отношении приведенного ниже кода.
>>> 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'
Я получаю такой же вывод, когда не использую all()
, так в чем разница между использованием Book.objects.all()
и 'Book. objects.annotate () '.
Как annotate()
на объектах Book без all()
предоставляет все объекты Book.
Я прочитал Django документацию, но не смог найти ответ .
Спасибо.