>>> type(Person.objects.all())
<class 'django.db.models.query.QuerySet'>
>>> pa = Person.objects.all() # Not evaluated yet - lazy
>>> type(pa)
<class 'django.db.models.query.QuerySet'>
DB запрашивается, чтобы дать вам объект Person
>>> pa[2]
DB запрошена снова, чтобы дать вам еще один объект Person.
>>> pa[2].first_name = "Blah"
Назовем этот экземпляр PersonObject1, который находится в памяти. Так что это эквивалентно что-то вроде этого:
>>> PersonObject1.first_name = "Blah"
Теперь давайте сделаем это:
>>> pa[2].save()
фасова [2] снова запрашивает БД возвращает другой экземпляр лица объекта, скажем PersonObject2, например. Который не изменится! Таким образом, равнозначно называть что-то вроде:
PersonObject2.save()
Но это не имеет ничего общего с PersonObject1.
Очень хорошо объяснено! Благодаря! –